"Live video technology explain" series of eight: Cloud SDK live performance testing model

Seven cattle cloud released a live video solutions for real-time streaming of live network LiveNet and complete cloud solution to the end of June, many developers and network solutions for the details and usage scenarios are very interested.

Seven cattle combined real-time streaming network LiveNet practice and live cloud solutions, we use eight articles, more systematic introduction to the current hot key technologies of all aspects of live video, live video to help entrepreneurs are more comprehensive, in-depth understanding of live video technology, better technology selection.

 

This series of articles following outline:

(A) opening

(B) Acquisition

(C) processing

(D) encoding and encapsulation

(E) transmitting plug flow and

(Vi) delay optimization

(Vii) the principles of modern players

(Viii) SDK Performance Test Model

Benpian is "live video technology explain" the last of a series of live performance tests SDK cloud model, affect the performance of the final SDK App is very large. SDK version rapid iteration, testing of the system should be carried out before each release, the test must be more consistent behavior, there must be a performance model as a theoretical basis to do a quantitative assessment of the performance of the SDK. This article is to discuss the performance indicators of the impact SDK and establish appropriate performance of the model.

 

 

Important parameters affecting the video quality and size

Before the test we need to clear a few parameters greatest impact on the quality and size of the video: frame rate, bit rate and resolution.

1) How to develop a frame rate

A is a still picture, animation continuous frames formed as television picture and the like. We usually say that the number of frames, simply put, the number is transmitted in one second time of the picture, can be understood as a graphics processor can be refreshed several times per second, usually expressed in fps (Frames Per Second). Each frame is a still image, the display frame in rapid succession will form the illusion of motion. High frame rate can be more fluid and realistic animation. Frames per second (fps) more, the operation will be displayed more smoothly.

2) How to develop rate

We see the first object of the video encoding, it is possible to clear the limited video bandwidth, our example image 25 frames per second, 25 image group defined GOP, the key is I, B, P-frame format of three frames, I-frame is a key frame, you can imagine it is a JPEG compressed image, and B, P frame I frame is to rely on the presence, if you lose an I-frame, B, P frame can not see images, B, and not the actual image pixel P frame contents described, but the amount of change of each pixel is associated, with respect to their I-frame information will be very small. Group refers to the length of the GOP is a group of keyframes I-frame, only one group of each GOP I-frame.

We look at the code stream size with a set of pictures related to what? When the video compression encoding same, clarity requirements are the same when the GOP length format group determines the size of the stream, for example: 25 frames per second picture, GOP of length is 5, the frame format IBPBP, then 5 has a second I-frame, B-frame 10, 10 P frames, if the GOP of length 15, the frame format is IBBPBBPBBPBBPBB, then there will be two I-frames in one second, and 16 B frames and 7 P frames, the I frame 5 than the data amount occupied by two I frames, the GOP length format group also determines the size of the code stream.

3) How to specify resolution

Resolution refers to the concept of the video resolution into the video imaging product size or the size of the image. Common video resolution is 640 × 480,1088 × 720,1920 × 1088. Two sets of digital imaging, the former is image length, which is the width of the image, the two images are obtained by multiplying pixel.

 

 

SDK affect the performance of the index

With the above pre-knowledge, we can begin to prepare for the test performance of the SDK, we first analyze what are the indicators may reflect the performance of the SDK, Android and iOS divided into two platforms:

Android

  • GC: GC by logging, Mirror GC Full GC and the frequency and time, Full GC will cause more obvious Caton, needs assessment

  • UI Loop is VSync Loop: reflect the impact of the App SDK fluency, in theory, is the most smooth 60 fps value.

  • Memory: reflect the size of memory-intensive SDK

  • CPU Usage: SDK reflect the size of the footprint of computing resources

 

iOS

  • UI Loop: reflect the impact of the App SDK fluency, in theory, is the most smooth 60 fps value.

  • Memory: reflect the size of memory-intensive SDK

  • CPU Usage: SDK reflect the size of the footprint of computing resources

 

In addition to a number of system-level indicators above, here are some of the indicators SDK live in a unique, these indicators reflect the core competitiveness of the SDK and some of the main differences relate to the video clarity and fluency, but also can be quantified .

1) impact indicators definition video

  • Frame rate

  • Rate

  • Resolution

  • Quantization parameter (compression ratio)

 

2) indicators affecting the video fluency

  • Rate

  • Frame rate

 

3) Other important indicators

Live is guzzler traffic and performance, there are a number of indicators, which directly affect the user's experience, we also need to focus on:

  • power consumption

  • Fever (not quantified, most cases of fever and power consumption is proportional, power consumption can be used to temporarily replace)

 

 

 

Test Plan

Testing process needs to cure some of the test conditions, and then come the test results according to different test conditions, here select the two most common conditions now are some of the statistics we have come to a return visit by a large number of customers, it can reflect the majority live scenarios located. The main restrictions from the resolution, video processing, rate and several dimensions of the network environment.


The last two tests are divided into several indicators: objective and subjective indicators, the former SDK reflects the degree of consumption of the system, but not to say that although it is an objective indicator has no effect on the user, but the user experience to say the result is not obvious. Subjective indicators will directly affect the end-user experience, but instead easily overlooked in the traditional tests, because of poor quantification, where a jade Paizhuan make some quantifiable way, I hope the reader thinking cause.

A test conditions

  • Resolution 480p

  • No watermark, no beauty

  • Rate 1 M

  • Network guarantee 0.5 M ~ 2 M

This condition reflects the most usage scenarios under low network conditions, but also reflect the basic properties of the SDK case, as the SDK substantially benchmark push and pull the stream flow, the test does not introduce too much dependent. 

Test conditions B

  • 720p resolution

  • No watermark, there is beauty

  • Rate 1 M

  • Network guarantee 0.5 M ~ 2 M

This condition reflects the majority of customer usage scenarios, and beauty with a higher resolution video processing, can be used as an important basis SDK Competitive Analysis of the test results are very close to the real scene.

1) testing program objective indicators
objective indicators App affect the stability and performance:

  • Memory

  • Test for 10 minutes, curve memory

  • Test 1 hour, TP99, TP95, TP90, need to archive

  • Test 1 hour increments memory, examine whether there is a memory leak, you need to archive

  • Reference: Last Result

  • CPU

  • 10 minutes test, CPU Usage curve

  • Test 10 minutes, TP99, TP95, TP90, need to archive

  • Reference: Last Result

  • Rate

  • Test 10 minutes, TP99, TP95, TP90, highlights, where the rate required separate control point of view, if the network jitter caused by lower bit rate, such points are not included in, the test only SDK rate control, need to be archived

  • Reference: 1 M (both size deviation)

  • power consumption

  • One-hour test, the total power consumption of the process of recording, the screen displays the power consumption, CPU power consumption, need to archive

  • Reference: Last Result

 

2) subjective indicators test plan
subjective impact indicators App users:

  • UI Loop App itself can achieve the maximum frame rate, video frame rate is different, because his statistics are our SDK can affect the fluency of the entire App, you need to track

  • 10 minutes test, UI Loop curve

  • Test 10 minutes, UI Loop TP99, TP95, TP90, repeated comparisons need to be archived

  • Reference: 60 fps

  • Android GC

  • Test 1 hour recording frequency Mirror GC and the Full GC, GC-long recording TP99, TP95, TP90, repeated comparisons need to be archived

  • Reference: Last Result

  • Frame rate (fps)

  • Test 10 minutes, TP99, TP95, TP90, repeated comparisons need to be archived

  • Reference: 30 fps

  • Compare PSNR definition video index

  • Test 10 minutes, need to archive repeated comparison, this indicator can be used as a fixed video input.

  • Reference: Last Result

 

3) The results show

  • The table shows specific indicators

  • Curve shows the raw data and the time axis

  • Heat map and a reference value of the deviation

  • Heat map shows the distance last archived value is improving or deteriorating

 

With this automated iterative, systematic testing, our post-human heart almost paranoid repeatedly polished the performance of the SDK, only bring the best live experience to the end user, to help our customers through next-gen media maximize their business value, we hope that we are always accompanied by blazing your way.

 

Click "read the original" Browse series broadcast technology explain the full article

Guess you like

Origin blog.csdn.net/ai2000ai/article/details/94645633