US10389780B2 - Managed adaptive streaming - Google Patents
Managed adaptive streaming Download PDFInfo
- Publication number
- US10389780B2 US10389780B2 US13/763,601 US201313763601A US10389780B2 US 10389780 B2 US10389780 B2 US 10389780B2 US 201313763601 A US201313763601 A US 201313763601A US 10389780 B2 US10389780 B2 US 10389780B2
- Authority
- US
- United States
- Prior art keywords
- video
- user device
- quality
- user
- entities
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/756—Media network packet handling adapting media to device capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H04L65/4084—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/752—Media network packet handling adapting media to network capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Definitions
- the disclosure relates to transmission of video streams over Internet protocol (IP) networks. More specifically, it relates to transmission of rate adaptive video streams over managed IP networks.
- IP Internet protocol
- UDP User Datagram Protocol
- IP Internet protocol
- TCP Transmission Control Protocol
- Streaming of video over UDP is done primarily using real-time transport protocol (RTP) and real time streaming protocol (RTSP). These protocols typically enable playback functionalities such as Play, Pause, Rewind, Fast Forward, Record, etc.
- RTP real-time transport protocol
- RTSP real time streaming protocol
- NAT network address translation
- HTTP hypertext transfer protocol
- TCP transfer control protocol
- Progressive Download is a method where video is transferred to the user device as a file using the HTTP application layer protocol. As soon as enough video is received at the user device, it starts playing the video. Progressive download faces various problems, some which are illustrated below.
- the network connecting the server and the user device typically includes many links between routers, each having a different available bandwidth.
- the number of users sharing each link is large and varies over time.
- WiFi links which are typically the last hop in the route, may exhibit drops in available bandwidth.
- VBR Very Bit Rate
- the video encoder may encode different parts of the video stream in different bit-rates. This happen can locally, on a scale of a few seconds, even in case the encoder was configured to output a VBR stream. During periods when the encoded video bit-rate is higher than the average, it is possible that the available bit-rate for the user device is insufficient for continuous playback. In such a case the playback will freeze, even though on average the bit-rate available for the user device is sufficient for the video.
- video data is accumulated at the user device's video playback buffer. If the user device stops the video playback before the entire stream is played, all the accumulated data at the playback buffer is discarded without being watched. However, downloading data that will not be used is a waste of network resources.
- the video playback does not start upon the arrival of the first video byte to the user device. Rather, the video playback is delayed, in order to allow accumulation of video playback buffer at the user device. This delay also occurs when the user device seeks forward or backward in the movie and its previously transmitted data becomes irrelevant. This delay has a typical length of several seconds, and it degrades the user experience.
- the most common link layer protocol for video transmission over the Internet is TCP.
- the TCP protocol dynamically attempts to estimate the link's parameters (BW, Round Trip Time (RTT)) and adjust its transmission accordingly. It also attempts to share the available bandwidth evenly between TCP user devices.
- This probing functionality has a cost in term of transmission efficiency.
- a sender that knows exactly the available bandwidth for the stream may better utilize the link.
- An example for this under-utilization can be seen in Wang's work (B. Wang, 2004, “Multimedia Streaming via TCP: An Analytic Performance Study”), stating that good streaming of video over TCP requires available bandwidth of twice the mediaBW.
- a content delivery network is a network of caching proxy servers. Ideally, a caching server will be located as close as possible to the user device. A CDN shortens the distance between the user device and the server, resulting in a wider channel with less bandwidth fluctuation. However, the solution for the bandwidth problems is only partial, since the route between the user device and the proxy server may still exhibit problems of insufficient or fluctuating bandwidth.
- Bit rate throttling is a feature in a video streaming server that controls the rate in which data is being transmitted to the user.
- the video streaming server analyzes the video file sent to the user, determines its encoding bit rate, and sets its transmission bit rate accordingly. When a new user starts receiving video, the video streaming server sets the transmission bit rate to be higher than the encoding bit rate, in order to reduce the startup delay at the user device.
- ABR Adaptive Bit-Rate
- ABR is a method that enables each user device to receive the appropriate video, according to its available bandwidth.
- the video is encoded in several versions, each in a different bit-rate.
- the user device senses the available bandwidth, and selects the appropriate version accordingly.
- each version of the stream is encoded in segments.
- a segment is a part of the stream that can be concatenated to its subsequent segment from a different version in a way which appears seamless to the player. Segment duration is typically 2-10 seconds.
- An adaptive streaming user device measures its available bandwidth and playback buffer state, and according to those inputs requests the segment of the appropriate version.
- the ABR method attempts to resolve the problem of having too little and too much bandwidth, as well as addressing fluctuation in bandwidth.
- ABR also improves the start/seek delay by selecting versions with smaller sizes when the playback buffer is low.
- ABR also creates a new quality of experience (QoE) problem, whereby the quality of the received stream is inconsistent.
- QoE quality of experience
- TCP connections share the bandwidth equally. But equal bandwidth does not mean equal video quality, as in the following example:
- Two user devices are sharing the same channel of 4 mbps.
- One is a HD TV, whose video is encoded in the following versions: HIGH—4 mbps, MED—3 mbps, LOW—2 mbps.
- the other is a smartphone, with a lower screen resolution, whose video has the following versions: HIGH—2 mbps, MED—1 mbps, LOW—0.5 mbps.
- each user device will attempt to achieve an equal share of the channel's bandwidth, thus each user device will be allocated 2 mbps.
- the smartphone will experience a high video quality, while the HD TV will suffer from a low video quality.
- Inequality in the QoE can occur when all user devices are using the same device as well.
- the encoder may require more bits for complex scenes than to a simple scene.
- the TCP being oblivious to video quality, will receive equal bandwidth for both user devices, hence causing video quality inequality.
- Adjustable bit rate attempts to solve the problems of fluctuating available bandwidth and fluctuating video encoding bit-rate, but does so based only on data received at the user device, which produces limited results comparing to the proposed solution.
- FIG. 1 illustrates a system according to an embodiment of the disclosure
- FIG. 2A illustrates a method for estimation of the video quality (VQ) from compressed video according to an embodiment of the disclosure
- FIG. 2B illustrates a stage of the method of FIG. 2A according to an embodiment of the disclosure
- FIG. 3A-3B illustrate quality calculations according to various embodiments of the disclosure
- FIG. 4 illustrates a method according to an embodiment of the disclosure
- FIG. 5 illustrates an environment that is simulated during the method of FIG. 4 according to an embodiment of the disclosure
- FIG. 6 illustrates a method according to an embodiment of the disclosure
- FIG. 7 illustrates a stage of the method of FIG. 6 according to various embodiments of the disclosure.
- any reference in the specification to a method, to a system or to a computer readable medium should be interpreted as being applicable to each one of the system, the method and the computer readable medium.
- a reference to a method should be interpreted as being also aimed, where applicable, to a system and to a computer readable medium.
- the method can be executed by a corresponding system.
- instructions stored in the computer readable medium may cause a computerized system to execute various methods disclosed herein.
- the user device may select the video version it downloads.
- Various implementations can include a system that selects the version of each video segment to be transmitted to each user device.
- the network device is aware of all the user devices sharing the network, and of the video quality of each video segment. This added information facilitates smarter decisions regarding the available bandwidth (BW) for each user device and the version of the video segment to be sent to each user device. These decisions can improve the overall quality of experience (QoE), reduce start delays and alleviate network congestions and underutilization.
- QoE quality of experience
- the system can have a centralized architecture and can control bandwidth and QoE.
- the system, method and computer readable medium can consider the available bandwidth over the entire network, the temporal video quality of the video streams, the properties of the user devices and the playback buffer state in each of the user devices in order to provide an efficient resource allocation.
- the system can allocate more bandwidth for high profiles and big screens in order to optimize the overall QoE of the lineup.
- the system can apply logic to differentiate bandwidth according to the user device properties.
- the system can differentiate screen size and profile (like SD, HD and 3D).
- the system can optimize lineup and session QoE by quality shaping.
- the system can aim for a uniform quality over time and across sessions. This allows increasing the quality and saving bandwidth relatively to other adaptive streaming solutions.
- the system, method and computer readable medium avoids areas where the video quality is bad by selection of high quality and bit rate versions. It compensate for the extra bandwidth in another areas or session where the actual quality of the lower versions is good enough.
- the system can also facilitate increased density by optimizing QoE in the user devices and network resource utilization of the devices.
- the system facilitates an increased number of user devices being served over a given network.
- the system can optimize the QoE given an inconsistent QoS in the home network. For example, the system can reduce the user device's tuning delay (start latency) by providing more bandwidth to new user devices and a smart version selection.
- FIG. 1 illustrates a system 10 , including a quality measurement module 20 , an allocator 30 and an output handler 40 .
- Each one of the measurement module 20 , allocator 40 and output handler 40 can include hardware components or can be executed (or hosted) by a server or other computerized entity that includes hardware components.
- each of these modules 20 , 30 , 40 can be a server that is equipped with software, middleware or any type of code that allows the server to operate as a quality measurement module, allocator or output handler.
- FIG. 1 illustrates N video input video streams (each is represented by one or more versions), K user devices 80 ( 1 )- 80 (K), three versions of a first video stream 50 ( 1 , 1 ,)- 50 ( 1 , 3 ) and M versions of the Nth video stream ( 50 (N, 1 )- 50 (N, M).
- K can equal N (e.g., when each user device receives a different video stream), K can be bigger than (e.g., when at least two different user devices receive the same video stream), and K can be smaller the N (e.g., when the quality measurement module receives and evaluates the quality of more video streams than then number of user devices).
- N e.g., when the quality measurement module receives and evaluates the quality of more video streams than then number of user devices.
- the quality measurement module 20 can calculate the quality of input media streams quality by analyzing their properties.
- the quality measurement module 20 of FIG. 1 is illustrated as having a separate quality measurement modules 20 ( 1 )- 20 (N) for each media stream but this is not necessarily in all implementations.
- FIG. 1 illustrates all media streams 50 ( 1 , 1 )- 50 (N, M) that are analyzed by quality measurement module 20 to be sent to output handler 40 .
- the media streams are not necessarily sent to the output handler 40 .
- the output handler 40 can select the appropriate (selected) video stream 60 ( 1 )- 60 (K).
- the output handler 40 can receive feedback 70 ( 1 )- 70 (K) from the user devices.
- the allocator 30 can identify user device properties and quality metadata, and can identify the video version to be provided to the user device and can allocate a transmission bit rate to the stream.
- the output handler 40 can send the selected version of the media stream to the user device at the allocated bit rate.
- the output handler 40 can sense the properties of the network (such as available bandwidth in each link), and can provide feedback to the allocator 30 .
- the feedback can include the network properties along with statistics associated with transmitted data.
- the quality measurement module 20 can calculate the video quality over a specified period of video frames.
- the period of time may be variable or constant and can depend on configuration, Group of Picture (GOP) structure, segments length and movie length.
- GOP Group of Picture
- the quality measurement can be applied per a “switch unit” as the basic block for quality measurement.
- a switch unit is the smallest unit of media that can be seamlessly concatenated between different versions or can be processed to do so. For example every synchronized closed GOP is a switch unit. This differs from the existing adaptive streaming technologies in which user devices request different video versions in resolution of segments, which may consist of several switch units. As part of the disclosed managed adaptive streaming solution this atomic switch unit can be used as a segment, thus increasing granularity, which in turn results in improved efficiency.
- the quality measurement module 20 can use higher quality video version or the source video as a reference for quality measurement. If a good quality version is not available, the quality measurement can use a non-reference model whereby the video quality is estimated without using a reference.
- the quality calculation can be optimized for increased correlation with subjective video impression (such as mean opinion score (MOS)).
- MOS mean opinion score
- the quality measurement module 20 can use mean square error, peak signal to noise ratio (PSNR), structural similarity or any other metric for reference or non-reference model.
- PSNR peak signal to noise ratio
- the input for the quality measurement module 20 can be provided in either real-time or offline.
- more tools can be used to offer better correlation to the subjective quality.
- the quality measurement module 20 can operate in various modes.
- a first mode can operate in the uncompressed domain after the relevant video period was decoded. This mode offers a better correlation to the subjective video quality.
- Another alternative is compressed domain analysis using parameters such as the qscale, motion vector and coefficients.
- a second mode can operate in a compressed domain.
- the compressed domain can provide higher density and lower cost, because it avoids the decoding process.
- This mode may have specific flavors per codec (like H.264, MPEG2 or VC1), because different codec have different parameters in the encoded domain.
- a basic approach for video quality estimation can work on the encoding parameters such as average bit rate and resolution. This type of measurement loses temporal and session video quality differentiation, however it facilitates screen and profile differentiation (e.g. small screens gets a proportional share of the bandwidth).
- This mode does not require video processing, since the video quality can be performed on metadata or manifest files. Moreover, in instances where the input is encoded with constant quality, video quality differentiation can be maintained.
- the quality measurement module 20 may apply a hybrid mode, where some content is measured in the compressed domain and some content is measured in the uncompressed domain or without video processing at all, according to performance and viewing statistics.
- the quality measurement module 20 may normalize its grade to user device's profile (such as SD ⁇ HD ⁇ 3D), and screen size (mobile, tablet and TV).
- FIG. 2A illustrates a method 150 for estimation of the video quality (VQ) from compressed H.264 video according to an embodiment of the invention.
- Process 150 can operate to estimate the VQ using the compressed video parameters and edge device specifications.
- the process 150 does not decode the compressed stream and does not require a reference stream.
- the VQ estimation can be referred to as a two stage process.
- the process 150 starts at stage 160 by estimating the peak signal to noise ratio (PSNR) is estimated from the compressed domain upon a group of pictures.
- PSNR peak signal to noise ratio
- the PSNR estimation can be based on the quantization parameters (QP) and introduces linear complexity in its basic form which provides an estimated PSNR (see equation 1).
- QP quantization parameters
- the current PSNR estimator can be further refined or upgraded to detect other effects (e.g. pumping effect).
- the current PSNR estimator is not an encoder, edge device or bit rate sensitive.
- E[QP OF GROUP OF IMAGES] denotes the average QP over a certain video segment that includes the group of images.
- PSNR ⁇ 1 ⁇ E [QP of a group of images]+ ⁇ 1 (eq. 1)
- Stage 160 is followed by stage 170 where the spatial pixel density is calculated.
- Spatial pixel density refers to the pixel density for 1 0 of viewing angle.
- the spatial pixel density is directly affected by the edge device characteristic: display size and native resolution, displayed stream resolution, viewing distance and human eye discrimination ability. It is assumed that the displayed stream is scaled up/down to fit the edge device display size and resolution while maintaining its original aspect ratio.
- stage 180 the VQ is estimated using the PSNR and calculated spatial pixel density.
- edge device quality black-levels, color Temperatures, brightness, dynamic Range, contrast, color, viewing Angles etc.
- edge device quality black-levels, color Temperatures, brightness, dynamic Range, contrast, color, viewing Angles etc.
- VQ for new edge devices with new native resolutions and display sizes can be interpolated using the introduced method.
- PSNR and VQ estimators were validated against subjective tests by a group of video quality experts across different encoders, edge devices and stream types.
- FIG. 2B illustrates an implementation of stage 170 of FIG. 2A .
- Stage 170 may start at stage 110 of receiving edge device and displayed stream information.
- Edge device information may include diagonal (screen length), nHres, nVres (native resolution), AR (aspect ratio), dist (viewing distance) and displayed screen information may include sHres and sVres (resolution).
- Stage 110 can be followed by stage 120 where display dimensions are extracted. Extracting display dimensions can include calculating the following equations:
- Stage 120 can be followed by stage 130 , where pixel radius is extracted. Extracting pixel radius can include calculating the following equations:
- PixelArea dVsize Vres ⁇ dHsize Hres
- PixelRadius PixelArea ⁇
- Stage 130 can be followed by stage 140 where angular pixel density is extracted. Extracting angular pixel density can include calculating the following equations:
- PixelViewingAngle tg - 1 ⁇ ( PixelRadius dist )
- AngularPixelDensity 1 PixelViewingAngle
- profile and screen normalization There can be at least two methods for profile and screen normalization separated and unified. Separated profile and screen normalization can measure video quality independently for the profile and screen. A second module can normalize the raw video quality and the user device type into a normalized video quality value. These modules can be more efficient if a certain stream served a few profiles, because the raw video quality measurement is performed for a single instance.
- FIG. 3A This scenario is illustrated in FIG. 3A , where a video stream (such as M versions of video stream N) is sent to a raw quality measurement module 21 (N) and outputs raw video quality information 92 (N). It is assumed that this video stream should be sent to the Kth user device. Accordingly, the raw video quality information 92 (N) and the Kth user device information 91 (K) (screen size, profile of video supported by the user device) are sent to quality normalization module 22 (K) that outputs video quality information 23 (K).
- a video stream such as M versions of video stream N
- the normalized video quality is calculated directly for the video data and the user device type. This method offers a better correlation to the subjective quality, but the results are designated only for one profile type.
- FIG. 3B This scenario is illustrated in FIG. 3B where a video stream (such as M versions of video stream N) and the Kth user device information 91 (K) (screen size, profile of video supported by the user device) are sent to quality measurement module 20 (N) that outputs video quality information 23 (K).
- a video stream such as M versions of video stream N
- the Kth user device information 91 (K) screen size, profile of video supported by the user device
- a central management system can offer automatic selection to different mode and methods of operation based on user configuration, available resources, priority, use-case, session rating and the effect of the bandwidth utilization.
- the system can provide different approaches for quality measurement and digital rights management (DRM) (e.g., encryption): Perform Quality measurement before encryption; Decryption and encryption and Working in the encrypted domain.
- DRM digital rights management
- the stream can undergo encryption immediately following the quality measurement.
- the encryption can be performed on the same machine or in a different machine than the quality measurement.
- the decryption keys can be used to decrypt the data, retrieve the metadata, and re-encrypt the data. This process is scalable because the decryption and encryption are performed once per stream.
- the quality measurements can rely on parameters which are not affected by the encryption.
- the VQ complies with the public recommended encoding settings for HTTP live streaming of media. More specifically, there are recommended bit-rate values for encoding streams for different devices, and desired video quality. Using these values, the average video quality of a given input stream is interpolated. Hence, a coarse VQ estimation is also available in these scenarios.
- Metadata is compiled containing all required information for proper version selection and statistical multiplexing that is done by the allocator. Delivery of the metadata to the allocator is provided in cases where the system is deployed in a distributed architecture, where the quality measurement module does not reside in the same place as the rest of the system. Five possible delivery methods are listed below.
- the metadata can be embedded into the content using mechanisms offered by the container format. For example, when media content is encapsulated in MPEG-Transport-Stream, metadata may be embedded as transport_private_data within the adaptation field. Unlike traditional SPTS encryption, some encryption protocols encrypt all the data as a file, usually using a CBC. In this case the metadata can be inserted at the beginning of the file such that metadata is available by decryption of a small portion of the segment.
- the metadata can be added into the manifest files.
- metadata can be added to the .m3u8 playlists using the ‘#’ comment syntax which would be ignored by all other entities except the allocator.
- new segments can be interleaved into the existing playlist of a single variant containing only metadata.
- a new variant of the stream can be added that contains segments containing only metadata.
- live content metadata can be sent over an out of band connection from the quality measurement module to the allocator.
- the allocator 30 of FIG. 1 controls the quality of video that user devices download and the transmission bit rate in which user devices download the video data.
- the allocator 30 serves user devices that are connected to a network of any topology. Generally, each user device has a limited bandwidth and any group of user devices may share a channel with a limited bandwidth.
- An example for a network is the cable DOCSIS environment where multiple cable modems are connected to a cable modem termination system (CMTS) and share a channel with limited bandwidth B.
- CMTS cable modem termination system
- Each cable modem may be connected to a home router which serves multiple user devices.
- each cable modem is limited to a bandwidth B.
- user devices A and B may be connected to a home router that is connected to cable modem.
- User devices A and B share the bandwidth denoted by B.
- User device C may be connected to a home router under cable modem. User devices A, B and C, therefore, share the bandwidth denoted by B.
- the goals of the allocator 30 can be: (i) Maximize bandwidth utilization, hence increase video playback session density and (ii) Maintain equal Quality of Experience for all sessions that is optimal and constant over time.
- Bandwidth utilization of a link is defined as the ratio of the transfer rate of video payload viewed by the user device to the channel BW.
- QoE Quality of Experience
- the VQ a user device receives can be a weighted average of quality grades given to GOPs by the tools mentioned above.
- the simplest weighted average for example, can be the average VQ of all GOPs received until a certain time.
- Playback is stopped when there isn't enough video playback in the user device's buffer and is continued after user device has buffered sufficient data.
- Potential problems that are addressed by the allocator can include fluctuation in bandwidth availability, variability of video bit rate over time, and variability of video quality over time
- the allocator can use information which may not be available in the existing ABR technologies: VQ and size measurements, future transmission simulation, network information, additional user and User device Playback Buffer.
- Information regarding network topology and resources may be available to the allocator via one or more of the following methods.
- the allocator can receive a configuration from a separate configuration entity.
- This configuration can include the network topology and available bandwidths per home router and per channel.
- the bandwidths published to the allocator through this method may be upper bounds or tight.
- the allocator can receive network information from the output handling.
- This information may include bandwidth availability to specific user devices that reside behind a home router, bandwidth availability to a home router, and bandwidth availability that is shared between many home routers.
- the method with which this information may be gathered includes, but it not limited to, the following: TCP congestion control feedback, An inline system where all traffic in the system passes through the output handling, and can be calculated or a Query of network entities such as routers using existing protocols such as SNMP.
- control is centralized in the server size. This implies that the controlling entity (the allocator) is aware of all the users sharing the network resources, and can handle the cross-effects between the users more efficiently. This extra information has an effect especially when users are joining or leaving the system, and the allocated bit-rate for the existing users has to change.
- the user device playback buffer is available in existing ABR technologies where the control is on the user device side, but is also available in the disclosed system, method and computer readable medium by monitoring the data transmitted to the user device.
- segments When segments are received at the user device, they are not sent to playback instantly, but rather stored in a buffer at the user device until their playback time.
- This buffer will be referred to here as the user device playback buffer, or CPB. Knowing the CPB state of the user device can assist the allocator in making its decision.
- the allocator can have information of the CPB state at any point.
- the user devices can send its playback buffer state and no calculation is needed. However it is not always possible to get the playback buffer directly from the user device. It can be proposed a method to estimate the playback buffer size. It can be assumed that the user device HTTP get or equivalent request that indicates the user device's current position in playback.
- the current playback buffer size is the transmitted data minus the playback start time.
- the playback start time can be experimentally determined for each user device type, where a common practice is starting the playback after the first video segment has arrived (which can be used as the “default” value).
- a skip or seek request can be identified by a discontinuity in the request. Delayed user device request times (i.e. requests arrive later than expected) can indicate playback buffer fullness or that that user has paused playback.
- Version Selection includes choosing between video versions that are sent to a user device, that differ in bit rate and quality, and by statistical multiplexing it refers to the act of dividing the available bandwidth of a shared link among several user devices by allocating variable transmission bit rates to each user device. Decisions are based upon metadata compiled by the quality measurement module. Metadata is acquired according to the chosen delivery method. If content is encrypted, then the content may undergo partial decryption for the sake of the inband metadata only. The allocator is agnostic to the video encoding and can act upon the metadata.
- the video version allocated per user device can change in resolution of segments. Version Selection can be used to ensure equal ARVQ among user devices by employing the following strategy: For each user device being served, the allocator will calculate the ARVQ for a specific time period, for each version of video available to user device, i.e. for a time period T for each user device i that has a vector of n available versions (V i 1 , V i 2 , . . . ), there will be a vector of calculated ARVQs (Q i 1 , Q i 2 , . . . ). The allocator will then find the maximum ARVQ grade that all user devices can receive, within the limits of the channel constraints.
- two user devices share a 6 Mbps channel and are downloading different video sequences each having high and low bit rate versions.
- User device A may receive either a 3 Mbps video with an ARVQ grade of 6, or a 4 Mbps video with an ARVQ grade of 8.
- User device B may receive a 2 Mbps video with an ARVQ grade of 8 or a 3 Mbps video with an ARVQ grade of 9.
- the allocator may allocate 4 Mbps to User device, and select the 4 Mbps video and allocate 2 Mbps to user device B and select the 2 Mbps video, consequentially both user devices will receive an ARVQ grade of 8.
- Version selection can be used to ensure constant ARVQ by overcoming variable video quality.
- Video version V 1 may have an ARVQ of 6 during time period T 1 , and an ARVQ of 7 during time T 2 .
- Video version V 2 may have a ARVQ grade of 5 during time period T 1 , and an ARVQ grade of 6 during time T 2 . It is clear that the allocator may choose version V 1 during time period T 1 , and version V 2 during time period T 2 . Consequentially the video that is sent will consistently have an ARVQ grade of 6.
- the allocator may overcome QoE degradation due artifacts that are caused by transitioning between versions.
- the disclosed method proposes gradual switching between video versions that differ in quality within an acceptable level. For example, in cases where the transmission bit rate has to be lowered due to network behavior, the ARVQ received by a user device could drop from 8 to 4.
- the allocator may select a video version that will provide the user device with an ARVQ of 7, 6 and 5 for the duration of the transition to minimize the sharpness of the quality drop.
- Version selection can also reduce start/seek times by lowering the video version for a limited period. For example: a video sequence is divided into 1 second long Switch Units and encoded to low and high bit rate versions with video bit rates 2 Mbps and 4 Mbps respectively. A user device with an available bandwidth of 4 Mbps requests the video. Assume the user device begins playback when it accumulates three seconds of video in its buffer. To minimize start time, the allocator may choose to transmit three 1 sec Switch Units from the 2 Mbps version, and the rest from the 4 Mbps version. This means that it takes 1.5 seconds to accumulate 3 seconds of playback ((2 Mb ⁇ 3)/(4 Mbps) ⁇ 1.5 s).
- video version V 1 may have an AVRQ of 6 and a bit rate of 1 Mbps during time period T 1 , and an AVRQ of 7 and bit rate of 2 Mbps during time T 2 .
- Video version V 2 may have an AVRQ grade of 5 and a bit rate of 600 kbps during time period T 1 , and an AVRQ grade of 6 and a bit rate of 800 kbps during time T 2 .
- the allocator may choose version V 1 during time period T 1 , and version V 2 during time period T 2 .
- the quality remains constant, and the bandwidth usage was lowered by 200 Kbps to 800 Kbps, instead of rising to 2 Mbps.
- FIG. 4 illustrates a version selection process 400 according to an implementation of the disclosure.
- a version selection process 400 can be executed once every set time interval (for example 1 per second).
- a VQ is chosen per session (“setting initial VQ” 410 ).
- the version is selected according to the chosen VQ (output of method 400 ).
- the version selected is the one having the lowest VQ which is higher than the chosen VQ.
- the method can proceed to perform an iteration of a simulation process ( 420 ) of the manner that video entities of that VQ will be provided to a user device. Stage 420 is followed by stages 430 , 440 , 450 and 460 which check to determine whether an overflow occurred (thus there is a need to increase VQ), whether an underflow occurred (thus there is a need to decrease VQ) and if neither occurred, the VQ is set at stage 470 .
- the upper threshold on the simulated PBD marks the PBD value over which the allocator increases the target VQ.
- a lower threshold on the simulated PBD (underflow), marks the PBD value under which the Allocator decreases the target VQ.
- the transmitted bit-rate is not affected by the changing VQ, only the sizes of the transmitted segments. Increasing the VQ causes an increase in the segment sizes, hence in a given time (and fixed transmitted size) fewer segments will be transmitted, and the simulated PBD will decrease. Similarly, decreasing the VQ will cause a decrease in segment sizes, hence in a given time, more segments will be transmitted, and the simulated PBD will increase.
- the simulation process 420 can take into account the playback duration (PBD) of each session by setting it as the duration of video playback available to that session.
- PBD playback duration
- a session whose PBD is negative will experience a “freeze”, or cessation in playback.
- the algorithm for choosing a VQ per session relies on the assumption that the statistical multiplexing, in charge of dividing the bandwidth between the sessions, aims to equalize all the session PBDs. Following this assumption, the simulation includes estimating the PBD of each session according to the metadata of the video stream.
- stages 420 - 460 may be the highest VQ is found that ensures that there will be no cessation of playback (not underflow or overflow).
- the simulated duration of playback available to the session's media player at time t (PBD(t)) is the current duration, plus the sum of all the segment durations that will be transmitted, given the available bit rate, during time t, which is the actual amount of time that the user device has played the video.
- the amount of segments that can be transmitted up to time t depends on the segment sizes and the available bit rate. Segment sizes for the calculation are chosen according to the VQ in the simulation. For example, the following table describes the sizes in bytes of segments that need to be transmitted in a session. Each segment is 5 seconds. Assume initial playback duration is 5 seconds.
- VQ is decreased and the simulation starts over. If the PBD(t) rises above a certain threshold then the VQ is increased.
- the lower threshold is meant to ensure that in the unfortunate case of a bit rate drop due to wi-fi problems, unexpected data on the link or any other hindrance to transmission, playback will not cease. For example, if segment lengths are 5 seconds, and the lowest bit rate is 500 Kbps, and the highest bit rate is 1000 Kbps, then a low threshold of 10 seconds is reasonable since it allows the allocator to change between the two without cessation of playback in case the bandwidth drops from 1000 Kbps to 500 Kbps
- the upper threshold is meant to maximize the bandwidth utilization by denying user devices an unnecessarily long playback buffer.
- PBD(t) is to be understood as the common playback buffer duration and is the sum of all playback durations of all sessions that share that link.
- the available bit rate is the link's estimated bit rate.
- the thresholds are multiplied per session. Segment sizes are chosen according to VQ min which is the minimum between the simulation VQ and the SVQ that was set in previous simulations.
- FIG. 5 illustrates a non-limiting environment that is simulated by method 400 .
- a server 510 (can be a part of output handler 40 ) is connected to linkO 520 .
- LinkO 520 is connected to link1 521 and to link2 522 .
- Link1 521 serves three sessions A-C 531 - 533 .
- Link2 522 serves three sessions D-F 534 - 536 .
- Simulations yields that only session A has a SVQ of 7, due to low bandwidth.
- ABR can divide the bit-rate equally between the user devices, while statistical multiplexing can divide the bit-rate in a way which provides a larger portion for user devices that require it, hence ensuring equal QoE.
- User devices may require extra bit-rate due to, for example: high resolution screen, where the average bit-rate of the video is higher, or a complex video scene, which causes a temporary increase in the video bit-rate.
- the CPB of that user device drops.
- the user device is in danger of freeze, in case the available bit-rate is insufficient.
- the behavior ranges from a decrease in visual quality when the user device reacts in time to the CPB drop and selects a lower version, to a freeze, when the user device does not react in time.
- Using statistical multiplexing enables transmission to that user device in a bit-rate which is higher than the bit-rate it would get using TCP, and accumulating playback in its CPB faster, hence escaping from the “danger zone” faster.
- the user device starts playback once the first segment is fully transmitted.
- the allocated bit-rate during the transmission of the first segment has crucial effect on the start/seek delay.
- this delay will be determined by the TCP congestion control.
- this delay can be significantly shortened by allocating to the user device who just joined/seeked a bit-rate share which is larger than his fair share.
- the user device In a scenario where the available bit-rate for a user is larger than the video encoding bit-rate, in existing ABR, the user device will continue downloading video and accumulate playback endlessly. This downloaded video is in risk of being wasted in case the user will stop playback, or seek to a different position within the movie. Using statistical multiplexing, this scenario can be avoided by monitoring the CPB and setting the bit-rate allocated for that user device to 0 when the CPB crosses a certain threshold.
- the statistical multiplexer aims to equalize the playback buffer durations of all the served sessions.
- the multiplexer issues a quota of bytes per session that should be sent in the coming time interval. Short time intervals allow for quick reaction to changes in bandwidth availability and session density.
- the quota is set according to the current playback buffer state of each session.
- the statistical multiplexer is presented with a list of sessions, and their associated network paths. Each link in the network path has an estimated bandwidth. The following algorithm can be used to allocate quotas:
- the following describes a tree graph with a single link with 2 gateways.
- Link 0 is connected to node_O.
- Node_O is connected node_1 via link_1 and to node_2 via link_2.
- Node_1 is connected to two other nodes and supports Session A of 1500 Kbps and Session B of 1500 Kbps.
- Node_2 is connected to two other nodes and supports Session C of 2000 Kbps and Session D of 2000 Kbps.
- Session Name Link Id Initial Playback duration
- Video bit rate A 1 1 1500 Kbps B 1 2 1500 Kbps C 2 3 2000 Kbps D 2 4 2000 Kbps
- A's playback buffer will be 1.26 seconds, while B's will be 1.2, and B will start receiving quota.
- the allocator may enforce policies towards specific user devices.
- User devices may be specified either by the operator or by user device information that is received from the protocol of user device requests such as: user device (iPad, iPod, etc), display capabilities (screen size/bandwidth/codec), etc.
- Policies include, but are not limited to, the following: Setting a minimum/maximum/bias VQ level per user device, Setting a minimum/maximum/bias transmission rate per user device and complying with priorities assigned to user devices (user devices with higher priority may receive more resources than lower priority user devices in cases of network resource saturation).
- the allocator may enforce global policies according to the availability of network resources, for example by rejecting new session requests when network resources are low and the QoE of current sessions may be jeopardized by additional sessions.
- Such cases may include: bandwidth between home routers and the user device due to packet drops (wireless interference/collisions) and additional data sent on the transmission channels that is not controlled video.
- the allocator allocates an initial bit rate BR initial .
- the output stage will attempt to transmit data in this bit rate.
- the feedback received from the output stage includes the number of bytes that were successfully transmitted to the user device during a time interval and so the allocator can determine the bit rate F in which that data was transmitted.
- the output processing is responsible for the actual communication with the user devices.
- Three basic abstraction layers in a general communication application over TCP may include application layer, TCP stack and network interface.
- the application layer represents the source of data to be transmitted. It includes all data processing stages and pushes the ready data to the TCP stack for delivery. For example video data over http.
- the TCP stack layer is the transport layer that assures the delivery of the data. It receives data from the application layer and guarantees it reaches the destination reliably.
- the network interface layer is responsible for the actual transmission of data to the network channel. It includes the NIC, the driver and the network protocol that controls them.
- the TCP stack queues data from the application layer, and passes it on to the network interface at a controlled rate, which is regulated by the TCP congestion control mechanism.
- This mechanism senses congestion by detecting packet losses and estimating the round-trip time (RTT) and updates the transmission rate accordingly.
- RTT round-trip time
- any of the three layers may be modified in the following ways to achieve the desired result:
- a user device-server link is managed by the application has only one TCP session. This method increases the utilization of the TCP layer and enforces the session bandwidth.
- the data to be transmitted is pushed by the application layer into the transmit buffer of the session's TCP stack in a certain time intervals.
- the aggregated amount of data pushed at every interval corresponds to the required rate.
- the time interval between such transmissions may be either constant or variable.
- a sample implementation of this method is transmitting each constant period time ⁇ T, the following data bytes: SessionBandwidth/ ⁇ T.
- SessionBandwidth/ ⁇ T A feedback about the user device ability to receive this bandwidth is described below in the network sensing section.
- the time period should be similar to the RTT to achieve the best result in terms of bandwidth utilization, however this method improve the utilization even if the time period is significantly different from the RTT. Higher periods of time may be used to reduce performance requirement.
- TCP sessions are opened for the same point-to-point connection. Each session would carry a different portion of the total data to be transmitted. Since each TCP session gets a fair share of the channel bandwidth on average, the number of sessions is gradually increased until the aggregated transmission rate reaches the desired value. This method also requires the application layer at the receiving side to merge the received portions in each session back in the correct order into one stream of data
- This method does not enforce bandwidth per user device, but improves overall bandwidth utilization by a smart selection of the TCP flavor (e.g., selects a different TCP congestion control mechanism per user device).
- the TCP flavor may be selected according to the network condition to allow better utilization, for instance: When the managed traffic shares the same channel with other TCP traffic, it is recommended to use aggressive TCP flavors that try to claim as much bandwidth as they can for themselves, such as TCP Reno and TCP New Reno.
- TCP Hybla is recommended.
- TCP BIC Binary-Increase TCP
- SACK TCP Selective ACK
- the TCP congestion window size (commonly denoted by cwnd) is limited (per session) to a maximum value which corresponds to the desired transmission rate. This effectively controls the maximum throughput of the TCP session.
- the TCP congestion control mechanism regulates throughput accordingly by reducing the congestion window. As it constantly probes the network channel for more bandwidth, the congestion window size increases and will reach the limit but it cannot exceed it.
- This method introduces a traffic shaper which resides in the network interface and intercepts all outgoing data packets received from the TCP stack. Intercepted packets belonging to the desired connection are filtered according to the session identifiers, and delayed (or dropped) to match the required output rate.
- a token bucket algorithm can be used to regulate the average output data rate. Tokens are added to the bucket at a constant rate, but the bucket can accommodate only a limited amount of tokens). Transmitted data packets are passed through the bucket, and for every byte of the packet a token is removed from the bucket. If there are not enough tokens in the bucket, the packet is buffered and delayed until the bucket regenerates enough tokens (or alternatively the packet is dropped). For TCP transmissions, the buffer size is recommended to be in the same order of magnitude as the session's bandwidth-delay product (the desired rate times the RTT).
- Network sensing is provided for the allocator to determine whether the data is actually transferred to each user device at the desired rate. Any method of sensing relies, by definition, on trial and observation. This can be based on either information extracted from any of the communication layers (if they are accessible) or on an external source of information. Suggested methods to estimate the actual available bandwidth:
- the actual output rate can be estimated by dividing the file size by the transfer time (this can be further averaged by a sliding window to increase robustness against sampling noise and jitter).
- the actual output rate can be estimated by ⁇ B/ ⁇ T, where ⁇ B is the change in the amount of queued bytes and ⁇ T and is time interval between polls.
- the estimated rate is less than the desired output rate, this means that the user device experiences bandwidth deficiency and the estimation approximates the actual available bandwidth. It is recommended hence to optimize the transmission to the currently available bandwidth.
- the server can try to utilize more bandwidth by temporarily pushing data into the TCP transmission buffer at a higher rate and re-estimating the output rate.
- the exact available bandwidth in the network channel can also be detected by querying intermediate network nodes (such as routers) for available bandwidth via supported management protocols. For instance, most devices support SNMP, which allows common monitoring tools, such as MRTG, to look up for specific object identifiers from the router's database and collect the necessary information.
- SNMP which allows common monitoring tools, such as MRTG, to look up for specific object identifiers from the router's database and collect the necessary information.
- FIG. 6 illustrates process 600 according to some implementations.
- FIG. 7 illustrates stage 620 of process 600 according to various implementations.
- Process 600 can start at stage 610 by receiving or generating (a) video entity quality information for multiple sets of video entities, each set of video entities comprises video entities that belong to different versions of a same video stream, (b) user device screen size information for each user device out of multiple users devices, (c) user device profile information for each user out of multiple users, and (d) bandwidth constraints relating to bandwidth available for transmission of selected video entities to the user devices; wherein each user of the multiple users is associated with a user device of the multiple users devices. It is noted that during stage 610 each of information items (a)-(d) can be received or generated. Thus, one information item can be generated while another can be calculated.
- a video entity is selected for each user device based on at least (a) the video entity quality information, (b) the user device screen size information, (c) the requested video profile information, and (d) the bandwidth constraints.
- Stage 620 is followed by stage 640 streaming content to the multiple user devices from the multiple selected video entities.
- Stage 620 can include stage 621 where a set of quality of experience factors are calculated for each combination of user device and set of video entities; wherein each quality of experience factor is responsive to (a) video entity information related to each video entity of the set, (b) user screen device information related to the user device and (c) user device profile information indicative of a video profile supported by the user device.
- the selected video entity is selected for each user device based upon a set of quality of experience factors associated with the user.
- a selected video entity for a first user of the multiple users is chosen based upon a set of quality of experience factors associated with the first user and sets of quality of experience factors associated with other users.
- the selected video entity for the first user device is chosen such as to reduce a difference between a quality of experience factor associated the selected video entity to be sent to the first user and a quality of experience factor associated with another selected video entity to be sent to another user.
- the selected video entity is chosen such as to reduce a difference between quality of experience factor associated with a selected video entity to be sent to the first user and at least one quality of experience factor associated with another selected video entity that was already sent to the first user.
- the selected video entity is chosen so as to reduce a difference between quality of experience factors associated with different video entity to be sent to the first user at different points in time.
- the quality of experience factor is calculated based on a peak signal to noise ratio (PSNR) and angular pixel density.
- PSNR peak signal to noise ratio
- a simulation is performed for (a) multiple selections iterations of selected video entities to be transmitted to the multiple of users and (b) transmissions of the selected video entities to the multiple users, during a future period of time.
- a set of quality of experience factors is calculated for each combination of user device and set of video entities; wherein each quality of experience factor is responsive to (a) video entity information related to each video entity of the set, (b) user screen device information related to the user device and (c) user device profile information indicative of a video profile supported by the user device.
- a quality experience factor is selected from a set of quality experience factors such as to guarantee that a user device receives selected video entities having the selected quality of experience factor without an occurrence of an overflow or an underflow during a future period of time.
- a possibility of an occurrence of the overflow and the underflow is evaluated during the future period of time while taking into account (a) statistical multiplexing applied on selected media entities aimed to be transmitted to the multiple users and (b) estimated network constraints to exist during the future period of time.
- quality of experience factors are selected for user devices that share a same network link based upon bandwidth constraints applicable to the network link.
- bandwidth allocation is made to selected video streaming entities are made using statistical multiplexing.
- the process selects congestion control policies to be applied on the streaming of the selected video entities based upon at least two parameters out of latencies of network channels used to convey the selected media entities, capacities of the network channels, packet loss rate over the network channels and number of user devices that share the network channels.
- congestion windows are selected to be applied to the streaming of the selected video entities.
- the systems, methods and computer readable media associated with streaming video servers of this disclosure, and components thereof, can be realized by instructions that upon execution cause one or more processing devices to carry out the processes and functions described above.
- Such instructions can, for example, comprise interpreted instructions, such as script instructions, e.g., JavaScript or ECMAScript instructions, or executable code, or other instructions stored in a computer readable medium.
- Implementations of the subject matter and the functional operations described in this specification can be provided in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
- Embodiments of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible program carrier for execution by, or to control the operation of, data processing apparatus.
- the tangible program carrier can be a propagated signal or a computer readable medium.
- the propagated signal is an artificially generated signal, e.g., a machine generated electrical, optical, or electromagnetic signal that is generated to encode information for transmission to suitable receiver apparatus for execution by a computer.
- the computer readable medium can be a machine readable storage device, a machine readable storage substrate, a memory device, a composition of matter effecting a machine readable propagated signal, or a combination of one or more of them.
- system processor encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers.
- the system processor can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
- a computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- a computer program does not necessarily correspond to a file in a file system.
- a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code).
- a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
- the processes and logic flows described in this specification are performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output thereby tying the process to a particular machine (e.g., a machine programmed to perform the processes described herein).
- the processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
- processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
- a processor will receive instructions and data from a read only memory or a random access memory or both.
- the elements of a computer typically include a processor for performing instructions and one or more memory devices for storing instructions and data.
- a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
- mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
- a computer need not have such devices.
- a computer can be embedded in another device, e.g., a mobile communications device, a telephone, a cable modem, a set-top box, a mobile audio or video player, or a game console, to name just a few
- Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD ROM disks.
- semiconductor memory devices e.g., EPROM, EEPROM, and flash memory devices
- magnetic disks e.g., internal hard disks or removable disks
- magneto optical disks e.g., CD ROM and DVD ROM disks.
- the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
- embodiments of the subject matter described in this specification can be operable to interface with a computing device having a display, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer.
- a display e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
- keyboard and a pointing device e.g., a mouse or a trackball
- Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
PSNR=α1 ·E[QP of a group of images]+β1 (eq. 1)
VQ=α2·PSNR+β2·angular pixel density+γ2 (eq. 2)
User device A | User device B |
Bit rate | Bit rate | |||
Available Versions | (MBPS) | ARVQ | (MBPS) | |
Low Version | ||||
3 | 6 | 2 | 8 | |
High Version | 4 | 8 | 3 | 9 |
| GOP # | 1 | |
|
|
10 | 1000 Kbits | 1000 Kbits | 1000 Kbits | |
7 | 700 Kbits | 700 Kbits | 700 Kbits | |
5 | 500 Kbits | 500 Kbits | 500 Kbits | |
Session Name | Link Id | Initial Playback duration | Video |
A | |||
1 | 1 | 1500 | |
B | |||
1 | 2 | 1500 | |
C | |||
2 | 3 | 2000 | |
D | |||
2 | 4 | 2000 Kbps | |
| Link | 0 | |
|
Session | |
# | BW | BW | | List | Allocation | |
0 | 400 | 200 | 300 | Session A, | Session A |
Session B | receives |
||||
1 | 250 | 0 | 300 | Session B, | Session B |
Session C | receives |
||||
2 | 200 | 0 | 300 | Session C, | Session C |
Session D | receives |
||||
3 | 0 | 0 | 100 | Session D | Session D |
receives min | |||||
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/763,601 US10389780B2 (en) | 2012-02-08 | 2013-02-08 | Managed adaptive streaming |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261596261P | 2012-02-08 | 2012-02-08 | |
US13/763,601 US10389780B2 (en) | 2012-02-08 | 2013-02-08 | Managed adaptive streaming |
Publications (2)
Publication Number | Publication Date |
---|---|
US20130297743A1 US20130297743A1 (en) | 2013-11-07 |
US10389780B2 true US10389780B2 (en) | 2019-08-20 |
Family
ID=49513501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/763,601 Active 2034-01-09 US10389780B2 (en) | 2012-02-08 | 2013-02-08 | Managed adaptive streaming |
Country Status (1)
Country | Link |
---|---|
US (1) | US10389780B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140379872A1 (en) * | 2012-02-06 | 2014-12-25 | Nokia Solutions And Networks Oy | Customer experience management interaction with caching |
US10779017B2 (en) * | 2018-12-10 | 2020-09-15 | Warner Bros. Entertainment Inc. | Method and system for reducing drop-outs during video stream playback |
US11956513B2 (en) | 2020-12-14 | 2024-04-09 | Exfo Inc. | Automated calibration of QoE assessment between content delivery network (CDN) entities |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103039085B (en) * | 2011-06-07 | 2015-03-11 | 华为技术有限公司 | Monitoring device and method for monitoring a video session in a data network |
US9288513B2 (en) | 2011-08-29 | 2016-03-15 | Aerovironment, Inc. | System and method of high-resolution digital data image transmission |
US20130301415A1 (en) * | 2011-09-29 | 2013-11-14 | Avvasi Inc. | Methods and systems for managing media traffic based on network conditions |
US20140181266A1 (en) * | 2011-09-29 | 2014-06-26 | Avvasi Inc. | System, streaming media optimizer and methods for use therewith |
US9118738B2 (en) | 2011-09-29 | 2015-08-25 | Avvasi Inc. | Systems and methods for controlling access to a media stream |
US20140025710A1 (en) * | 2012-07-23 | 2014-01-23 | Espial Group Inc. | Storage Optimizations for Multi-File Adaptive Bitrate Assets |
US9125073B2 (en) * | 2012-08-03 | 2015-09-01 | Intel Corporation | Quality-aware adaptive streaming over hypertext transfer protocol using quality attributes in manifest file |
EP2883348B1 (en) | 2012-08-07 | 2020-03-04 | Visible World, LLC | Systems, methods and computer-readable media for resource-based allocation of content transmitted in a media network |
US20140089467A1 (en) * | 2012-09-27 | 2014-03-27 | Andre Beck | Content stream delivery using pre-loaded segments |
US9621902B2 (en) * | 2013-02-28 | 2017-04-11 | Google Inc. | Multi-stream optimization |
US8896707B2 (en) * | 2013-04-05 | 2014-11-25 | Centurylink Intellectual Property Llc | Video qualification device, system, and method |
US9438652B2 (en) * | 2013-04-15 | 2016-09-06 | Opentv, Inc. | Tiered content streaming |
US10587663B2 (en) * | 2013-05-31 | 2020-03-10 | Verily Life Sciences Llc | Video stream preview |
US20140380347A1 (en) * | 2013-06-24 | 2014-12-25 | Wefi Inc. | Methods and systems for user experience based content consumption |
US11888919B2 (en) | 2013-11-20 | 2024-01-30 | International Business Machines Corporation | Determining quality of experience for communication sessions |
US10148526B2 (en) * | 2013-11-20 | 2018-12-04 | International Business Machines Corporation | Determining quality of experience for communication sessions |
US20150146012A1 (en) * | 2013-11-27 | 2015-05-28 | Sprint Communications Company L.P. | Video presentation quality display in a wireless communication device |
US10142259B2 (en) | 2014-03-03 | 2018-11-27 | Ericsson Ab | Conflict detection and resolution in an ABR network |
US9455932B2 (en) * | 2014-03-03 | 2016-09-27 | Ericsson Ab | Conflict detection and resolution in an ABR network using client interactivity |
US9992500B2 (en) * | 2014-03-18 | 2018-06-05 | Intel Corporation | Techniques for evaluating compressed motion video quality |
US9591316B2 (en) * | 2014-03-27 | 2017-03-07 | Intel IP Corporation | Scalable video encoding rate adaptation based on perceived quality |
WO2015168893A1 (en) * | 2014-05-08 | 2015-11-12 | 华为终端有限公司 | Video quality detection method and device |
US9426478B2 (en) * | 2014-07-21 | 2016-08-23 | Cisco Technology, Inc. | Resolution robust video quality metric |
US20170193638A1 (en) * | 2014-09-11 | 2017-07-06 | Kevin Patrick GRUNDY | System and method for controlling dynamic range compression image processing |
KR102288087B1 (en) | 2014-11-25 | 2021-08-10 | 엘지전자 주식회사 | Multimedia device and method for controlling the same |
US9648359B2 (en) | 2014-12-02 | 2017-05-09 | Arris Enterprises, Inc. | Method and system for advertisement multicast pre-delivery caching |
US9712860B1 (en) * | 2014-12-12 | 2017-07-18 | Amazon Technologies, Inc. | Delivering media content to achieve a consistent user experience |
US9807391B2 (en) * | 2014-12-22 | 2017-10-31 | Arris Enterprises Llc | Multiple stream video compression in multiple bitrate video encoding |
US10491911B2 (en) * | 2015-02-20 | 2019-11-26 | Harmonic, Inc. | Transcoding on-the-fly (TOTF) |
US9826066B2 (en) * | 2015-02-26 | 2017-11-21 | Citrix Systems, Inc. | System for dynamic selection and application of TCP congestion avoidance flavors |
US9985898B2 (en) | 2015-02-26 | 2018-05-29 | Citrix Systems, Inc. | System for bandwidth optimization with traffic priority determination |
US10454985B2 (en) * | 2015-03-04 | 2019-10-22 | Qualcomm Incorporated | File format based streaming with dash formats based on LCT |
US11757970B2 (en) * | 2015-04-13 | 2023-09-12 | Sony Group Corporation | System and method for content streaming in a network environment |
US10542067B2 (en) * | 2015-06-17 | 2020-01-21 | Samsung Electronics Co., Ltd. | Method and apparatus for distributed bottleneck coordination in dash with resource pricing |
US9693063B2 (en) * | 2015-09-21 | 2017-06-27 | Sling Media Pvt Ltd. | Video analyzer |
US9749686B2 (en) | 2015-09-21 | 2017-08-29 | Sling Media Pvt Ltd. | Video analyzer |
KR102372190B1 (en) * | 2015-12-18 | 2022-03-08 | 삼성전자주식회사 | The apparatus and method for transmitting the streaming data in the wireless communication system |
US10785300B2 (en) * | 2016-10-12 | 2020-09-22 | Dell Products L.P. | Storage rate limiting for information handling system with multiple storage controllers |
WO2018116298A1 (en) * | 2016-12-19 | 2018-06-28 | Telicomm City Connect, Ltd. | Predictive network management for real-time video with varying video and network conditions |
US11159834B2 (en) | 2016-12-21 | 2021-10-26 | British Telecommunications Public Limited Company | Managing congestion response during content delivery |
US11190430B2 (en) | 2016-12-21 | 2021-11-30 | British Telecommunications Public Limited Company | Determining the bandwidth of a communication link |
EP3563575B1 (en) | 2016-12-29 | 2024-04-10 | British Telecommunications public limited company | Transmission parameter control for segment delivery |
US10491645B2 (en) | 2017-03-01 | 2019-11-26 | At&T Intellectual Property I, L.P. | System and method for switching between adaptive bit rate and fixed rate streams |
CN106888208A (en) * | 2017-03-01 | 2017-06-23 | 杨凯 | A kind of Radio Transmission Technology of algorithm of being rectified a deviation based on Streaming Media |
JP7136084B2 (en) * | 2017-03-28 | 2022-09-13 | 日本電気株式会社 | Communication device, media delivery system, media delivery method and program |
US20180324231A1 (en) * | 2017-05-08 | 2018-11-08 | Alcatel-Lucent Usa Inc. | Multicast adaptive bitrate channel selection in access networks |
CN109309934B (en) * | 2017-07-27 | 2021-01-15 | 华为技术有限公司 | Congestion control method and related equipment |
US11818100B2 (en) * | 2017-12-04 | 2023-11-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Automatic provisioning of streaming policies for video streaming control in CDN |
TWI679886B (en) * | 2017-12-18 | 2019-12-11 | 大猩猩科技股份有限公司 | A system and method of image analyses |
US10560941B2 (en) | 2017-12-29 | 2020-02-11 | Hughes Network Systems, Llc | Dynamically adjusting communication channel bandwidth |
CN110662017B (en) * | 2018-06-30 | 2022-05-10 | 华为技术有限公司 | Video playing quality detection method and device |
US10771393B1 (en) * | 2018-09-13 | 2020-09-08 | Parallels International Gmbh | Resource usage for a remote session using artificial network bandwidth shaping |
JP7161103B2 (en) * | 2018-10-25 | 2022-10-26 | 日本電信電話株式会社 | COMMUNICATION SYSTEM, NETWORK SIDE DEVICE, TRANSMISSION FUNCTION CHANGE METHOD AND PROGRAM |
CN109302623B (en) * | 2018-11-01 | 2020-06-09 | 南京大学 | QoE model-based dynamic adaptive video transmission method |
US11146832B1 (en) * | 2018-11-08 | 2021-10-12 | Amazon Technologies, Inc. | Distributed storage of files for video content |
US10735742B2 (en) | 2018-11-28 | 2020-08-04 | At&T Intellectual Property I, L.P. | Adaptive bitrate video testing |
US11140328B2 (en) | 2019-01-22 | 2021-10-05 | Tempus Ex Machina, Inc. | Systems and methods for partitioning a video feed to segment live player activity |
US11172248B2 (en) * | 2019-01-22 | 2021-11-09 | Tempus Ex Machina, Inc. | Systems and methods for customizing and compositing a video feed at a client device |
CN111510771B (en) | 2019-01-30 | 2021-10-12 | 上海哔哩哔哩科技有限公司 | Selection method, system, device and medium of definition switching algorithm |
EP4008095B1 (en) | 2019-08-02 | 2024-02-21 | Dolby Laboratories Licensing Corporation | Personalized sensitivity measurements and playback factors for adaptive and personalized media coding and delivery |
JP7513101B2 (en) | 2020-08-26 | 2024-07-09 | 日本電気株式会社 | Video quality estimation device, video quality estimation method, and video quality estimation system |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6076166A (en) * | 1997-01-17 | 2000-06-13 | Philips Electronics North America Corporation | Personalizing hospital intranet web sites |
US7266122B1 (en) * | 2002-11-27 | 2007-09-04 | Genband Inc. | System and method for allocating bandwidth in a communications environment |
US20070276954A1 (en) * | 2006-05-19 | 2007-11-29 | Hong Kong University Of Science And Technology | Low-Delay High Quality Video Streaming Using TCP |
US20080195748A1 (en) * | 2007-02-09 | 2008-08-14 | Melodeo Inc. | Data delivery |
US7694034B1 (en) * | 2007-01-08 | 2010-04-06 | Sprint Communications Company L.P. | Data flow manager for device mobility |
US20110296485A1 (en) * | 2009-02-12 | 2011-12-01 | Nilsson Michael E | Video streaming |
US20120005716A1 (en) * | 2009-05-29 | 2012-01-05 | Harmonic Inc. | Systems and methods for video statistical multiplexing adapting to internet protocol networks |
US20120020581A1 (en) * | 2009-04-08 | 2012-01-26 | Rony Zarom | System and method for image compression |
US20130219446A1 (en) * | 2010-08-13 | 2013-08-22 | Simon Fraser University | System and method for multiplexing of variable bit-rate video streams in mobile video systems |
-
2013
- 2013-02-08 US US13/763,601 patent/US10389780B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6076166A (en) * | 1997-01-17 | 2000-06-13 | Philips Electronics North America Corporation | Personalizing hospital intranet web sites |
US7266122B1 (en) * | 2002-11-27 | 2007-09-04 | Genband Inc. | System and method for allocating bandwidth in a communications environment |
US20070276954A1 (en) * | 2006-05-19 | 2007-11-29 | Hong Kong University Of Science And Technology | Low-Delay High Quality Video Streaming Using TCP |
US7694034B1 (en) * | 2007-01-08 | 2010-04-06 | Sprint Communications Company L.P. | Data flow manager for device mobility |
US20080195748A1 (en) * | 2007-02-09 | 2008-08-14 | Melodeo Inc. | Data delivery |
US20110296485A1 (en) * | 2009-02-12 | 2011-12-01 | Nilsson Michael E | Video streaming |
US20120020581A1 (en) * | 2009-04-08 | 2012-01-26 | Rony Zarom | System and method for image compression |
US20120005716A1 (en) * | 2009-05-29 | 2012-01-05 | Harmonic Inc. | Systems and methods for video statistical multiplexing adapting to internet protocol networks |
US20130219446A1 (en) * | 2010-08-13 | 2013-08-22 | Simon Fraser University | System and method for multiplexing of variable bit-rate video streams in mobile video systems |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140379872A1 (en) * | 2012-02-06 | 2014-12-25 | Nokia Solutions And Networks Oy | Customer experience management interaction with caching |
US11012490B2 (en) * | 2012-02-06 | 2021-05-18 | Nokia Solutions And Networks Oy | Customer experience management interaction with caching |
US10779017B2 (en) * | 2018-12-10 | 2020-09-15 | Warner Bros. Entertainment Inc. | Method and system for reducing drop-outs during video stream playback |
US11956513B2 (en) | 2020-12-14 | 2024-04-09 | Exfo Inc. | Automated calibration of QoE assessment between content delivery network (CDN) entities |
Also Published As
Publication number | Publication date |
---|---|
US20130297743A1 (en) | 2013-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10389780B2 (en) | Managed adaptive streaming | |
US10070156B2 (en) | Video quality of experience based on video quality estimation | |
US11089347B2 (en) | Adaptation logic for varying a bitrate | |
US20220385955A1 (en) | Excess bitrate distribution based on quality gain in sabr server | |
CN103733632B (en) | Dynamic bit rate regulation in bandwidth change connection | |
KR102050816B1 (en) | Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network | |
EP3162076B1 (en) | Server side adaptive bit rate control for http streaming clients | |
EP2962435B1 (en) | Link-aware streaming adaptation | |
US8621061B2 (en) | Adaptive bitrate management for streaming media over packet networks | |
US20150215359A1 (en) | Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network | |
EP3172862B1 (en) | Joint quality management across multiple streams | |
US20140281000A1 (en) | Scheduler based network virtual player for adaptive bit rate video playback | |
KR102486847B1 (en) | Link-aware streaming adaptation | |
US20210289013A1 (en) | Chunk-based prediction adaptation logic | |
US9131251B2 (en) | Use of a receive-window size advertised by a client to a content server to change a video stream bitrate streamed by the content server | |
Baik et al. | VSync: Cloud based video streaming service for mobile devices | |
Laine et al. | Network Capacity Estimators Predicting QoE in HTTP Adaptive Streaming | |
Mushtaq et al. | Regulating QoE for adaptive video streaming using BBF method | |
Shuai | Dynamic adaptive video streaming with minimal buffer sizes | |
Luthra et al. | Server-Based Smart Adaptive Bit Rate (SABR) Streaming With Statistical Multiplexing | |
Mastoureshgh | Measurement and Method for Receiver Buffer Sizing in Video Streaming | |
Mansy | Network and end-host support for HTTP adaptive video streaming | |
Kua | Achieving High Performance Content Streaming with Adaptive Chunklets and Active Queue Management | |
Dhamodaran | Optimization of Flexible Dual-TCP/UDP Streaming Protocol For HD Video Streaming over 802.11 Wireless Networks | |
Carlberg et al. | Video Conferencing-Session and Transmission Control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ARRIS SOLUTIONS, INC., GEORGIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ESHET, AMIT;COHEN, ADAM;BAR-YACCOV, ASSAF;AND OTHERS;SIGNING DATES FROM 20130213 TO 20130225;REEL/FRAME:029869/0909 |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, ILLINOIS Free format text: SECURITY AGREEMENT;ASSIGNORS:ARRIS GROUP, INC.;ARRIS ENTERPRISES, INC.;ARRIS SOLUTIONS, INC.;AND OTHERS;REEL/FRAME:030498/0023 Effective date: 20130417 Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, IL Free format text: SECURITY AGREEMENT;ASSIGNORS:ARRIS GROUP, INC.;ARRIS ENTERPRISES, INC.;ARRIS SOLUTIONS, INC.;AND OTHERS;REEL/FRAME:030498/0023 Effective date: 20130417 |
|
AS | Assignment |
Owner name: ARRIS ENTERPRISES, INC., GEORGIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ARRIS SOLUTIONS, INC.;REEL/FRAME:036601/0162 Effective date: 20150914 |
|
AS | Assignment |
Owner name: ARRIS ENTERPRISES LLC, PENNSYLVANIA Free format text: CHANGE OF NAME;ASSIGNOR:ARRIS ENTERPRISES INC;REEL/FRAME:041995/0031 Effective date: 20151231 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
AS | Assignment |
Owner name: POWER GUARD, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: UCENTRIC SYSTEMS, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: ARRIS SOLUTIONS, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: MOTOROLA WIRELINE NETWORKS, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: ARRIS HOLDINGS CORP. OF ILLINOIS, INC., PENNSYLVAN Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: LEAPSTONE SYSTEMS, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: GIC INTERNATIONAL CAPITAL LLC, PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: SETJAM, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: BIG BAND NETWORKS, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: TEXSCAN CORPORATION, PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: ARRIS ENTERPRISES, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: ACADIA AIC, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: BROADBUS TECHNOLOGIES, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: NEXTLEVEL SYSTEMS (PUERTO RICO), INC., PENNSYLVANI Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: SUNUP DESIGN SYSTEMS, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: THE GI REALTY TRUST 1996, PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: GENERAL INSTRUMENT INTERNATIONAL HOLDINGS, INC., P Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: CCE SOFTWARE LLC, PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: GIC INTERNATIONAL HOLDCO LLC, PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: IMEDIA CORPORATION, PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: GENERAL INSTRUMENT AUTHORIZATION SERVICES, INC., P Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: QUANTUM BRIDGE COMMUNICATIONS, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: MODULUS VIDEO, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: 4HOME, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: NETOPIA, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: GENERAL INSTRUMENT CORPORATION, PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: ARRIS KOREA, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: ARRIS GROUP, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: AEROCAST, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: JERROLD DC RADIO, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: ARRIS HOLDINGS CORP. OF ILLINOIS, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: GENERAL INSTRUMENT AUTHORIZATION SERVICES, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: NEXTLEVEL SYSTEMS (PUERTO RICO), INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 Owner name: GENERAL INSTRUMENT INTERNATIONAL HOLDINGS, INC., PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:048825/0294 Effective date: 20190404 |
|
AS | Assignment |
Owner name: ARRIS ENTERPRISES LLC, GEORGIA Free format text: CHANGE OF NAME;ASSIGNOR:ARRIS ENTERPRISES, INC.;REEL/FRAME:049586/0470 Effective date: 20151231 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
AS | Assignment |
Owner name: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATE Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:ARRIS ENTERPRISES LLC;REEL/FRAME:049820/0495 Effective date: 20190404 Owner name: JPMORGAN CHASE BANK, N.A., NEW YORK Free format text: ABL SECURITY AGREEMENT;ASSIGNORS:COMMSCOPE, INC. OF NORTH CAROLINA;COMMSCOPE TECHNOLOGIES LLC;ARRIS ENTERPRISES LLC;AND OTHERS;REEL/FRAME:049892/0396 Effective date: 20190404 Owner name: JPMORGAN CHASE BANK, N.A., NEW YORK Free format text: TERM LOAN SECURITY AGREEMENT;ASSIGNORS:COMMSCOPE, INC. OF NORTH CAROLINA;COMMSCOPE TECHNOLOGIES LLC;ARRIS ENTERPRISES LLC;AND OTHERS;REEL/FRAME:049905/0504 Effective date: 20190404 Owner name: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT, CONNECTICUT Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:ARRIS ENTERPRISES LLC;REEL/FRAME:049820/0495 Effective date: 20190404 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: WILMINGTON TRUST, DELAWARE Free format text: SECURITY INTEREST;ASSIGNORS:ARRIS SOLUTIONS, INC.;ARRIS ENTERPRISES LLC;COMMSCOPE TECHNOLOGIES LLC;AND OTHERS;REEL/FRAME:060752/0001 Effective date: 20211115 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |