
In the
last article, we looked at how Quick Sync Video (QSV) video acceleration and decoding hardware acceleration works in Skylake 6th generation processors. A small area of SoC was specially allocated to accommodate specialized integrated circuits that deal only with video processing. Playing video with hardware support has become much less to take away resources from other tasks in the OS, to heat the CPU less and to consume less electricity. Thanks to QSV, for example, a MacBook Air laptop plays more than 10 hours of video on one battery charge.
At the same time, hardware coding acceleration has become available for any third-party applications. With the latest generations of Intel Core processors, hardware support for transcoding to AVC / H.264 and HEVC / H.265 (as well as VP8 and VP9) has appeared - this could lead to a real revolution in the digital TV and video broadcast market on the Internet. Ordinary users have the right to rely on improving the quality of images of video broadcasts, reducing prices and increasing the number of available channels of digital TV.
How to use hardware acceleration in your program depends on the task. Intel publishes an open source API for developing applications for Windows
Media SDK 2.0 . There is also a cross-platform API for developing
Intel Media Server Studio enterprise applications. For more information about working with these APIs, see the
materials of the Intel corporate blog on Habre.
')
What programs use hardware acceleration QSV
Access to the QSV hardware transcoder through the Intel SDK is implemented in
many applications :
- software coders;
- media converters;
- video and photo editors;
- software for webcams;
- instant messengers;
- media players.
In addition, QSV is supported by the libavcodec free library for encoding and decoding, which is part of the
FFmpeg package. This is a very popular open source library. Thus, hardware acceleration from Intel is in all programs with FFmpeg.
As you can see, the class of applications today is very wide and includes many applications popular with professionals and ordinary users.
Intel's SDK (
Media Server Studio 2017 or
Media SDK ) is designed, among other things, for developing applications that solve video coding tasks in various types of projects, including video conferencing, high resolution video up to 4K, high-performance coding, Internet TV and similar .
Before the appearance of hardware support for working with video from Intel, solutions of one of three types were used (and are used to this day):
- software that uses dedicated graphics cards (such as NVidia or AMD) to speed up video processing;
- software that uses only CPU resources;
- hardware encoders on chips, so-called System-On-Chip.
Thanks to the Intel solution, video can now be encoded on ordinary low-cost home computers or servers with Intel processors, using ready-made or developing your own application using the SDK.
It should be immediately noted that ready-made applications do not require the participation of programmers and are already ready for use in real-world tasks; for example, they contain the most popular transcoding profiles for Internet TV and it’s much easier for a non-programmer engineer to work with them than with the SDK.
So, to run our own transcoding system, we need two things:
- software transcoder;
- Computer on an Intel processor with QSV support - Intel Core 5th generation for AVC / H.264 or Intel Core 6th generation for HEVC / H.265. Or similar server processors Xeon E3 of the 4th or 5th generation.
Intel-supported software transcoder
Performance in software transcoders with hardware QSV support allows you to build a commercial solution on a low-cost server with a single processor. For example, the
Elecard transcoder
CodecWorks 990 claims the
following performance
characteristics for each CPU :
- Real-time HEVC transcoding on output of 1 4K 60p stream, 6 FullHD streams (1080p) or 10 HD720 streams
- Real-time AVC transcoding on the output of 10 FullHD (1080p) streams or 16 HD720 streams
The number of video streams is limited only by the performance of the equipment (that is, it is not limited by software). Depending on your needs, you can assemble a hardware solution for the required number of processors, from several separate servers or several cartridges in a single server package. CodecWorks 990 allows you to configure and monitor the work of all encoders on the same network through a single graphical application. You can use the "manual" transcoding settings or choose from a set of predefined schemes. It also supports multi-bitrate and multi-screen coding with further broadcasting via HLS or MPEG-DASH (soon), which is important in Internet TV tasks.
Specifications | entrance | Output |
---|
Interface | Ethernet IP | Ethernet IP |
Video stream format | MPEG-2 TS UDP / RTP | MPEG-2 TS UDP / RTP, HLS |
Video codecs | AVC / H.264, MPEG-2, up to 4K | HEVC / H.265, AVC / H.264, up to 4K |
Audio codecs | AAC / HE-AAC v1, MPEG-1 Layer I / II | AAC / HE-AAC v1, MPEG-1 Layer I / II, AC3 Pass-through |
Preprocessing | Deinterlacing, scaling, changing the aspect ratio |
Control | Through a GUI application, monitoring CPU / GPU utilization and failures |
OS support | 64-bit Windows 7, 8, 8.1, 10, Intel Broadwell / Skylake CPU with Quick Sync Video support |
Job CodecWorks 990. Tincture, a detailed overview of the features
All CodecWorks 990 coding nodes are configured through a separate Windows application manager. You can configure all servers on the local network by adding them to the list of IP address managers:
Each coding node can simultaneously transcode several streams, each of which has its own coding console. The console has an activity status, a transcoding profile assigned to it, operation time and resources used.
Creating a new transcoding profile for the console is done in a step-by-step dialog box consisting of 4 steps:
At the first stage, the main parameters are selected: video codec, audio codec, output broadcast protocol and number of bit rates in case of multi-bitrate coding. At the next stage, you need to specify the address of the input broadcast, then select the audio / video tracks in the stream to be transcoding and adjust the codec parameters. An example of setting the video codec parameters for adaptive broadcasting of HLS in two streams:
In addition to setting profiles via dialog boxes, when it is necessary to go beyond simple transcoding options, it is possible to manually create a complete chain of work with media and set detailed parameters for each block. Here there is an analogy with the way the graph is assembled in the GraphEditor application from Microsoft, which is part of the DirectShow library on which the CodecWorks 990 application is built.
In the advanced editor, you can add any blocks (from the list of filters registered in the DirectShow system), connect them, and customize the full list of parameters for each block. Example of video encoder settings:
In addition to the above basic functionality of the application, it is possible to reload the coding console in case the use of system resources by the console falls below a certain value. There is a periodically customizable reboot - a crutch from the problematic components in the coding graph that are not distinguished by stability.
As mentioned above, the advanced editor of coding schemes allows using any DirectShow filters in the system, for example, ASI / SDI / HDMI capture cards, using third-party decoders for formats not supported by the application, and so on.
The demo version of CodecWorks 990 can be downloaded from
the product
website .
Hardware - from mini PC to cloud
Thanks to support in Intel processors, hardware accelerated video transcoding works on a variety of hardware: from personal computers and mini PCs to large servers.
For example, Intel Core processors with QSV support are installed in miniature
Intel NUC computers. Today it is one of the world's smallest platforms for hardware transcoding, a true mobile encoder. For example, the latest Intel NUC model is the
Intel NUC Kit NUC6i7KYK model with a 6th generation Intel Core i7-6770HQ processor and Iris Pro Graphics 580 graphics. Box dimensions: 211 × 116 × 28 mm. And this computer can encode one stream of 60 frames per second with the HEVC 4K resolution codec!
Intel NUC Kit NUC6i7KYK with a 6th generation quad-core processor Intel Core i7-6770HQOrdinary desktops with Intel Core processors are suitable for transcoding. If hardware acceleration of HEVC / H.265 or VP9 coding is required, you will have to install the latest 6th generation CPU (Skylake). For hardware AVC / H.264 encoding, older Broadwell processors are also suitable. For example, you can use the previous
Intel NUC Mini PC 5i7RYH model
starting at $ 449.
Intel NUC Mini PC 5i7RYH with 5th generation Intel Core i7-5557U processorThe price difference between the different generations of processors and the platforms on which they are installed (PC, mini PC, server, modular server) is quite high, so that in our time of crisis, the budget of the coders should be carefully calculated, depending on the technical requirements for the project.
For transcoding video in small projects, the authors of CodecWorks 990 recommend using one or more servers of the traditional form factor
Supermicro SuperServer 5019S-M2 (1 unit, 1 CPU). This is a budget solution for processing several dozen streams. The
Kontron Symkloud modular server is optimal for large OTT / IPTV projects - 18 processors in a server with a height of 2 standard units (2U). Finally, a specialized
HPE Moonshot server (4.3 U, up to 45 CPU) is suitable for simultaneous transcoding of hundreds of video streams.
HPE Moonshot ServerThe
table shows how many video streams can process each of these servers in different scenarios, with the CodecWorks 990 software transcoder.
What does fast AVC and HEVC encoding give?
With the development of the Internet and video compression algorithms such as HEVC / H.265, video transcoding is becoming an increasingly popular task. Digital video is now everywhere: TV and live broadcasts on the Internet, including via mobile networks, video conferencing, video surveillance systems, television broadcasting in HD and 4K. Perhaps the greatest growth is expected in the field of digital television over the Internet. This is where the most noticeable changes are expected in connection with the transition to the HEVC / H.265 codec, which today, in real-world applications, shows a 20-35% better degree of video compression compared to AVC / H.264 with the same quality. It is also worth adding that due to the algorithmic complexity of the codec, the software and hardware implementations of HEVC / H.265 continue to actively improve.
Fast transcoding in HEVC / H.265 with hardware support in Intel processors appeared in 2015 (Skylake). In fact, the video compressed by this codec is just beginning its massive distribution.
Theoretically, with the same video quality, HEVC Main Profile produces a 35.4% lower bit rate than H.264 / MPEG-4 AVC High Profile. The gain compared to MPEG-4 Advanced Simple Profile is 63.7% (
IEEE data ). This means a reduction in traffic of more than two times. In turn, HP AVC wins MPEG-4 ASP about 44.5% with the same quality.
More efficient compression means that digital TV providers can serve more subscribers on the same channel, broadcast more channels to each subscriber, and broadcast channels in higher resolution and quality. High definition television with a resolution of 1920 × 1280 will become common, and soon 4K UHDTV television will cease to be exotic.
4K, 2K and HDTV resolution comparisonFor the delivery of 4K UHDTV signal over the Internet, the HEVC / H.265 video codec is defined by the standard, since it allows to achieve the greatest gain in compression with a higher resolution of the picture. In Russia, only in 2014, the
first TV channels appeared that broadcast in 4K UHDTV resolution, compressing the video codec HEVC. However, TVs of this resolution are still available to a small number of subscribers, and standard Russian apartments are not too suitable for comfortable viewing of television on the UHDTV large screen from a distance of several meters.
The implementation of such projects and services by operators requires appropriate equipment. The working principle here is - the more choice, the better for operators and, ultimately, for subscribers, service users. Through the Intel SDK, it opens up opportunities for developers to write their software coders and transcoders, compete in usability and additional features. More choice - higher quality. The customer has a choice: write the application "by itself" using the SDK; take a ready-made application, like CodecWorks 990, pick up hardware and carry out engineering work on installation and configuration; or buy a fully ready to use hardware encoder. The choice is based on the cost of various options, technical readiness of the customer and developer, business problem.
Subscribers can be sure of one thing - in the near future they will have even more video with better quality for less money, and Intel has a serious impact on this trend.