📜 ⬆️ ⬇️

Intel Tools for Video Codec Makers

image On Habré in the blog of Intel regularly appear articles describing technologies and tools created within the walls of Intel. Many of them are somehow connected with the processing and analysis of video and images. These are products such as, for example, Intel Media Server Studio or Intel RealSense . However, there is a set of tools that are not so widely represented in the media space, but no less significant for such a category of developers as the creators of media codecs. It is this gap that we will try to fill in this topic. It will be about the Intel Video Pro Analyzer (Intel VPA) and Intel Stress Bitstreams and Encoder (Intel SBE) , as well as about the possibilities that are hidden behind these names.

To begin with, we will define the subject, the essence with which the above-mentioned tools work. These are bit streams. Bit stream is what is obtained after the video encoder has worked. Bitstream is a stream of bits that meets the specifications of a particular codec. If we look at the specification of most codecs, we will see that this bitstream is nothing more than a set of syntax elements of a given codec of various lengths. These are, for example, the width and height of a picture, a coding profile, transformation coefficients, various bit flags, etc. For the HEVC standard, these are hundreds of syntax elements. After encoding, these bit streams reach users placed in various media containers - avi, mp4, mpeg ts, etc. But codec developers mostly work with bit streams. Software developers, designers, electronic engineers, testers have their own tools for work. Why codec developers do not have them?

So, how can Intel Video Pro Analyzer and Intel Stress Bitstreams and Encoder make life easier for codec developers? Let's start with the Intel Video Pro Analyzer .

Intel Video Pro Analyzer is an application that can visualize information hidden in the depths of a codec and view its entire syntax. So, for HEVC, this is the syntax starting from header parameters (VPS, SPS, PPS) and ending with transformation blocks (TU), prediction blocks (PU) and coding blocks (CU).
')
image

Intel Video Pro Analyzer will be able to detect problems associated with deviations from the standard and point to a specific block or problem syntax element. This feature greatly facilitates the lives of developers implementing modern video codecs. If you study codecs, you can see its structure, see visually the motion vectors and the splitting tree of a particular block. At the same time, selecting each item, you can go to its description in the standard. There is another important application for the Intel Video Pro Analyzer : this application is a great illustrated tutorial that can replace the standard at the stage of studying / learning about coding technology. Such convenient standard navigation can greatly speed up the study of both the standard itself and video encoding technologies. Currently, Intel Video Pro Analyzer supports the following codecs: HEVC (including RExt, SCC, Multiview, and SHVC), VP9, ​​MPEG2, AVC. He can also open streams packed in MPEG2-TS, MP4, MKV, MMT and MPEG4-DASH containers. Intel Video Pro Analyzer allows you to evaluate the quality of coding, using the PSNR metric, to ensure compliance with the standard, and also supports the technology of HRD (Hypothetical Reference Decoder).

So, we have a handy tool for visualizing the syntax of the codec, allowing you to quickly find errors in its implementation. The next tool that speeds up codec creation is Intel Stress Bitstreams and Encoder . This tool is designed for quick debugging codec implementations. In fact, Intel Stress Bitstreams and Encoder is an encoder that provides the greatest coverage for codec syntax by randomizing it. At the output, we get streams, which, unlike ordinary streams, provide the maximum combination of different values ​​of syntax elements. Intel Video Pro Analyzer on these streams will show something like this:

image

Intel Stress Bitstreams and Encoder supports the following codecs: HEVC, SHVC, VP9, ​​AVS2. In addition, Intel Stress Bitstreams and Encoder allows you to create so-called broken streams that contain obviously incorrect values ​​of syntax elements and simulate the main problems of stream transmission in the network, such as packet loss, bit inversion, etc. This allows you to very quickly create your own handlers of abnormal situations and improve the quality of codecs. The report on the operation of these tools allows you to assess the quality of syntax coverage and looks like this:

image

So, all the above tools allow us to speed up the release of codecs to the market and improve their quality. In addition, they contain many other useful tools and opportunities for debugging and optimizing both encoders and decoders. If you want to learn the technologies used in video coding, then Intel Video Pro Analyzer can help you significantly speed up this process and show visually the codec syntax and how the elements are “packaged” into the stream.
Thanks for attention.

Source: https://habr.com/ru/post/302718/


All Articles