Video bit rate enhancement while maintaining video quality

文档序号:621654 发布日期:2021-05-07 浏览:8次 中文

阅读说明:本技术 在保持视频质量的同时提高视频比特率 (Video bit rate enhancement while maintaining video quality ) 是由 R·杰洛萨 B·格罗德斯 S·F·斯利文斯基 Q·达默雷尔 于 2019-06-26 设计创作,主要内容包括:用于在保持低等待时间的同时优化至端点的视频流的系统、方法和软件技术。在一个实现中,流服务接收视频数据以分发到多个端点。对于每个端点,服务以给定比特率向端点流传输视频数据。在视频被流传输时,服务以附加比特率向端点发送测试数据。服务还增加测试数据的附加比特率,直到视频数据质量发生阈值下降或直到视频数据和测试数据的总比特率达到视频数据的下一可用比特率为止。如果总比特率已达到下一可用比特率,则服务有条件地从给定比特率切换到下一可用比特率。(Systems, methods, and software techniques for optimizing video streams to endpoints while maintaining low latency. In one implementation, a streaming service receives video data for distribution to multiple endpoints. For each endpoint, the service streams video data to the endpoint at a given bit rate. As the video is streamed, the service sends test data to the endpoint at the additional bit rate. The service also increases the additional bit rate of the test data until a threshold drop in video data quality occurs or until the total bit rate of the video data and the test data reaches the next available bit rate of the video data. If the total bit rate has reached the next available bit rate, the service conditionally switches from the given bit rate to the next available bit rate.)

1. A method of operating a streaming service, the method comprising:

receiving video data for distribution to a plurality of endpoints;

encoding the video data at a plurality of bit rates; and

for each endpoint of the plurality of endpoints, the streaming service:

streaming the video data to the endpoint at a given bitrate;

sending test data to the endpoint at an additional bit rate while streaming the video at the given bit rate;

increasing the additional bit rate of the test data until a total bit rate of the video data and the test data reaches a next available bit rate of the video data, or until a quality of the video data fails to meet a quality criterion amount; and

conditionally switching from streaming the video data to the endpoint at the given bit rate to streaming the video at the next available bit rate if the total bit rate has reached the next available bit rate.

2. The method of claim 1, wherein the test data comprises a copy of at least a portion of the video data, wherein increasing the additional bit rate comprises increasing the additional bit rate in a progressive manner, wherein a quality of the video data is defined in accordance with one or more performance metrics associated with streaming the video data, and wherein the method further comprises:

if the quality fails to meet the quality criterion amount, refraining from sending any more test data and continuing to stream the video data at the given bit rate.

3. The method of claim 2, further comprising generating a plurality of versions of the video data, wherein each of the plurality of versions of the video data is encoded at a different bitrate relative to other respective versions of the plurality of versions of the video data.

4. The method of claim 3, wherein streaming the video data at the given bitrate comprises streaming one of multiple versions of the video data encoded at the given bitrate.

5. The method of claim 4, wherein streaming the video data at the next available bit rate comprises streaming a different one of multiple versions of the video data encoded at the next available bit rate.

6. The method of claim 5, wherein the one or more performance metrics associated with streaming the video data include latency, jitter, and packet loss; and wherein the method further comprises switching from streaming the video data at the given bit rate to streaming the video data at a lower bit rate in response to the quality degradation, independent of sending the test data.

7. The method of claim 1, wherein streaming the video data at the given bitrate and at the next available bitrate comprises streaming the video data according to a connectionless and unreliable transport protocol.

8. A computing device, comprising:

one or more computer-readable storage media;

a processing system operatively coupled to the one or more computer-readable storage media; and

program instructions stored on the one or more computer-readable storage media for operating a streaming service that, when executed by a processing system, direct the computing device to at least:

receiving video data for distribution to a plurality of endpoints; and

for each endpoint of the plurality of endpoints, the program instructions direct the computing system to at least:

streaming the video data to the endpoint at a given bitrate;

sending test data to the endpoint at an additional bit rate while streaming the video at the given bit rate;

increasing the additional bit rate of the test data until a total bit rate of the video data and the test data reaches a next available bit rate of the video data, or until a quality of the video data fails to meet a quality criterion amount; and

conditionally switching from streaming the video data to the endpoint at the given bitrate to streaming the video at the next available bitrate if the quality of the video data fails to meet a quality criterion amount.

9. The computing device of claim 8, wherein to increase the additional bit rate, the program instructions direct the computing device to increase the additional bit rate in a progressive manner, wherein the program instructions further direct the computing device to:

if the quality fails to meet the quality criterion amount, refraining from sending any more test data and continuing to stream the video data at the given bit rate.

10. The computing device of claim 9, wherein the program instructions further direct the computing device to generate multiple versions of the video data, wherein each of the multiple versions of the video data is encoded at a different bitrate relative to other respective versions of the multiple versions of the video data.

11. The computing device of claim 10, wherein to stream the video data at the given bitrate, the program instructions direct the computing device to stream one of multiple versions of the video data encoded at the given bitrate.

12. The computing apparatus of claim 11, wherein to stream the video data at the next available bit rate, the program instructions direct the computing apparatus to stream a different one of multiple versions of the video data encoded at the next available bit rate.

13. The computing apparatus of claim 12, wherein the program instructions further direct the computing apparatus to switch from streaming the video data at the given bit rate to streaming the video data at a lower bit rate in response to the degradation of quality, independent of sending the test data.

14. The computing device of claim 8, wherein the program instructions direct the computing device to stream the video data according to a connectionless and unreliable transport protocol.

15. A computing device, comprising:

one or more computer-readable storage media;

a processing system operatively coupled to the one or more computer-readable storage media; and

program instructions stored on the one or more computer-readable storage media for operating a streaming client that, when executed by a processing system, direct the computing device to at least:

receiving a video data stream at a given bit rate;

receiving additional data at an increased bit rate at the same time that said video data stream is received;

monitoring a threshold drop in the quality of the video data to occur before the total bit rate of the video data and the additional data reaches a next available bit rate; and

conditionally switching to streaming the video at the next available bit rate in response to a threshold decrease in quality occurring before the total bit rate reaches the next available bit rate.

Background

Video streaming services allow users to stream real-time video to other users in the context of social networks, gaming platforms, enterprise settings, and the like. In some cases, support for two-way communication allows users of videos to chat or otherwise interact with the originator of the content. Latency is therefore an important factor in enjoying such services, as low latency allows users to communicate in near real time, and the opposite may result in communication delays that are too long to be practical

Latency is affected by many factors, ranging from the network bandwidth between the streaming service and its end user to the capacity of the end user's local equipment. Without addressing any of these factors, the bit rate of the video being streamed may have an impact on latency. In general, increasing the bit rate of a video may increase its latency, while decreasing the bit rate of a video may decrease its latency. However, just as high bit rates result in high resolution video (which users like), lower bit rates may result in lower resolution feeds.

Therefore, there is a tradeoff between providing high resolution video with low latency. Some streaming technologies can dynamically increase or decrease the video bit rate in order to maintain latency. For example, HTTP Live Streaming (HLS) downloads video clips to clients. A client receiving a segment maintains a buffer that gives it time to attempt to download a higher bit rate version of the segment. If successful, the client plays the higher bitrate video, and if unsuccessful, the client will cancel the download and instead use the lower bitrate segment. Unfortunately, the buffering involved creates too much delay for the purposes of real-time streaming and bi-directional communication.

Some explicit real-time services, such as voice and video call services, utilize connectionless and unreliable protocols to send and receive data. One example is the User Datagram Protocol (UDP), which allows a sender to transmit packets to a recipient regardless of whether or in what order the data packets reach their destination. Such protocols may provide a low latency experience despite jitter and data packet loss that may occur.

A client receiving video over UDP may provide feedback to the sender to ensure that playback is smooth. The sending client may then adjust the bit rate up or down to mitigate any adverse effects of such streaming. Some of these streaming may be sent to multiple clients simultaneously, but cannot be extended beyond a limited number of clients.

Overview

Techniques for optimizing video streams to endpoints while maintaining low latency are disclosed herein. In one implementation, a streaming service receives video data for distribution to multiple endpoints. For each endpoint, the service streams video data to the endpoint at a given bit rate. As the video is streamed, the service sends test data to the endpoint at the additional bit rate. The service also increases the additional bit rate of the test data until a threshold drop in video data quality occurs or until the total bit rate of the video data and the test data reaches the next available bit rate of the video data. If the total bit rate has reached the next available bit rate, the service conditionally switches from streaming video data at the given bit rate to streaming video at the next available bit rate. In this way, the bit rate of the video may be safely increased without compromising the low latency experience.

This overview is provided to introduce a selection of concepts in a simplified form that are further described below in the technical disclosure. It may be appreciated that this summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:媒体数据的网络流式传输的初始化集合

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类