Against audio and video problems in weak networks, voice network officially open source anti-loss audio codec Agora SOLO!

Original link: https://bss.csdn.net/m/topic/dev_survey2019?source_id=zx

640?wx_fmt=gif

640?wx_fmt=jpeg

In recent years, more fire scenarios there are so few categories:
  • Games , such as multiplayer online war game, werewolf and kill, multiplayer team, also need real-time voice;

  • Interactive live , such as anchors with the audience even wheat, anchor and other anchors across the inter-live even wheat, need real-time interaction;

  • Online education , many segments of the scene, one pair 1,1 for more than two-division, and other problems in the current interactive online education is still the most difficult to solve real-time, that is, the teacher told the students how to better interact.

These real-time interactive scenarios, in the current network environment, to technology put forward higher requirements, both low latency, but also to achieve high-quality audio and video interaction. However, if the carrier does not arrive on time information packet, that packet loss occurs, it will have intermittent sound, the sound quality is low, the direct impact on the quality of real-time interaction. However, conventional anti-loss strategy is not a waste of bandwidth that can affect the audio quality. Under this dilemma, the acoustic network of Ag ORA combined source and channel coding Laid- point, packet-switched full use of characteristics of the network, developed a voice codec of the new network . In the October 24, RTC 2019 Fifth Conference of the Internet in real time on a special codec technology, sound technology VP network Agora high Zehua officially announced, open source audio network since the inquiry anti-packet loss audio codec --Agora SOLO!

640?wx_fmt=png
What Agora SOLO that?

Agora SOLO (hereinafter referred to as "SOLO") by the sound net Agora self-developed audio codec designed for network instability, it is based on Silk combines bandwidth extension (BWE) and multiple description coding (MDC), etc. technology to enable them to have a weak ability to fight at a lower network complexity. SOLO codec compatible with WebRTC, can be integrated into WebRTC-based independent research and development of products.
640?wx_fmt=png
Encoder Architecture FIG 1. SOLO
640?wx_fmt=png
2. SOLO decoder architecture of FIG.
SOLO anti-drop policy unlike the conventional method. Communication from the principle, source coding is possible to pursue a high compression ratio, redundancy elimination. The channel is the pursuit of strong error correction coding, error correction by adding redundancy to achieve. Agora SOLO ™ is to add redundancy and reduce redundancy combine reduce redundancy unimportant places, important places plus redundancy.
During transmission, it sends a packet transmitted split into two, wherein if a peer receives a signal to recover a limited distortion of the decoder; if you receive two packages on the ends can be decoded to recover the a high-quality signal. That SOLO does not need to wait for statistics on the current state of network packet loss, only directly to the anti-loss do internal codec. There are three benefits:
  • Lower delay can be achieved;

  • Enabling a higher quality, when receiving a packet to reach the quality level of the common codec, two received packets to achieve high quality codec level;

  • May face more than the environment.


640?wx_fmt=png
SOLO key technologies

Bandwidth expansion
SOLO 使用带宽扩展的主要原因是希望减少计算复杂度,在 Silk WB 模式中,16khz 的信号都会进入后续处理模块,而对于语音来说,8khz 以上的信息是非常少的,这部分信息进入到后续处理模块,会带来一定的计算资源浪费。MDC 因为要引入额外分析模块处理多条码流,又会引入额外的复杂度,这是 MDC 在近些年来落地不顺畅的重要原因之一。为了减少复杂度,我们在编码宽带信号前,将其分为 0-8k 的窄带信息和 8-16k 的高频信息。只有窄带信息会进入到后续正常分析、编码流程中,这样后续的计算量就减少了一半,同时得益于带宽扩展算法,整体质量不会有明显下降。高频信息部分,SOLO 使用独立的分析与编码模块,默认将高频信息压缩成1.6kbps 的码流。这部分高频信息可以在解码器内结合低频信号恢复出高频信号。
结合delay-decision 的 MDC
在 Silk 中,delay-decision 模块是一个滞后计算编码误差的模块,它可以从多个候选码流中选择误差最小的码流作为编码输出,一定程度上来说,它使得标量量化拥有了矢量量化的性能。SOLO 利用delay-decision 模块,实现了多描述码流的分析与构建。SOLO 的MDC主要作用于滤波器输出的残差信号, SOLO 会根据当前信号状态,对残差信号做多增益控制:计算出 MD 增益 a(0<a<1),将 a 作用于奇数子帧,并将(1-a)作用于偶数子帧以产生两段互补的残差信号,这里记作residual 1 和residual 2。
640?wx_fmt=png
图 3. 多描述残差信号产生
随后,这两段残差信号会进入到新的delay-decision 模块中,每个残差信号使用不同的抖动和量化方法,一共可以产生 8 种不同的备选状态,两两组合起来共有 64 种备选合成状态,新的delay-decision 模块会对每个残差信号的独立误差和两个残差信号的合成误差进行加权求和,决定出最佳的两个残差信号进入到编码模块。
输出码流组包
640?wx_fmt=png
图 4. 编码器码流整合及组包
SOLO default configuration for each 40ms input (2 frames), the output of two complementary multiple description bitstream, the decoder receives the code stream either period, to the decoded signal of 40ms. In order to facilitate sequential code stream receiving end to distinguish between right codestream bytes of the first fourth order bit streams are bit flag, the value of the first segment of the stream flag is 0, the second segment stream flag the value is 1. When the receiving side stream processing is performed, whereby to follow the order flag bit stream is determined.
Integrated approach has been written in Github detailed in the following address: https://github.com/AgoraIO-Community/Solo, welcome to Star.
【END】

640?wx_fmt=jpeg

 Thermal paper  recommended 

Article for super books DLT, libraries, development tools which, Hyperledger family members you know a few?

640?wx_fmt=gifClick here to read the original participation questionnaire, Gifts to send non-stop!

640?wx_fmt=png
Your point of each "look", I seriously as a favorite

Guess you like

Origin blog.csdn.net/csdnnews/article/details/102752209