Modern telecommunication systems include heterogeneous mixtures of second, third, and fourth generation (2G, 3G, and 4G) cellular-wireless access technologies, which can be cross-compatible and can operate collectively to provide data communication services. Global Systems for Mobile (GSM) is an example of 2G telecommunications technologies; Universal Mobile Telecommunications System (UMTS) is an example of 3G telecommunications technologies; and Long Term Evolution (LTE), including LTE Advanced, and Evolved High-Speed Packet Access (HSPA+) are examples of 4G telecommunications technologies.
The infrastructure that makes up the modern telecommunications networks comprises multiple different components or devices that are configured to transmit, receive, relay, and/or route data packets so that data services and/or content can be requested by, and provided to, client devices subscribed to a plan offered by one or more service providers or network communication providers that implement the telecommunications networks.
Telecommunications networks can become congested if many client devices are connected to the network and/or demand for data or services is high. Reducing bandwidth to a client device can reduce congestion, but can introduce problems into the telecommunications networks and/or the operation of the client device.
The detailed description is set forth with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items or features.
The systems, devices, and techniques described herein present opportunities for network providers to manage transmission patterns to control bandwidth and/or content provided to a client device, while improving power management at the client device.
In various embodiments, an available bandwidth provided to a client device can be set by a network provider. For example, in a wireless network, wireless bandwidth is scarce and expensive, and there are often times when the network provider needs to control network speeds across various links for network management, as well as business reasons. In some cases, a maximum available bandwidth can be provided to the client device when a network is lightly used or not congested. However, as more client devices use the network, or as congestion increases, the available bandwidth to an individual client device can be provided at a bandwidth-conserved rate. When a request for content is received at the network provider and/or at the content provider, content at a particular encoding rate is received and transmitted to the client device. Although the available (e.g., the average or effective) bandwidth to an individual client device can be limited, the content can be provided to the client device as bursty transmissions at the maximum transmission rate available between the network provider and the client device. After the bursty transmission is received at the client device, a radio at the client device is disabled, turned off, or transitioned to a low power mode to conserve power. After a period of time has passed, the client device can activate the radio to receive another transmission from the network provider. Thus, although an average transmission rate to a particular client device can be low, the instantaneous transmission rate can approach a maximum transmission rate. Further, because the client device is not operating continuously to transmit and receive data at a low rate, the client device can reduce its power consumption.
In this manner, the systems, devices, and techniques described herein improve a functioning of a computing device by optimizing a transmission between a network provider and a client device. Further, power consumption is reduced at the client device because the client device is not operating continuously to transmit and receive data. Further, the transmission patterns described herein reduce a congestion of a network by maximizing a transmission rate between devices and freeing up resources (e.g., bandwidth, channels, etc.) for additional communications. Further, offering fidelity priority options and bandwidth-conservation options to a user improves a user experience and allows for optimization when content quality or bandwidth conservation is a priority.
The systems, devices, and techniques described herein can be implemented in a number of ways. Example implementations are provided below with reference to the following figures.
The client device 102 can be any sort of device capable of engaging in wireless communication with other, remote devices. Thus, client device 102 can include, but is not limited to, smart phones, mobile phones, cell phones, tablet computers, portable computers, laptop computers, personal digital assistants (PDAs), electronic book devices, or any other portable electronic devices that can generate, request, receive, transmit, or exchange voice, video, and/or digital data over the network paths 108 and 110.
In some embodiments, the client device 102 can include a bandwidth selection module 112 and a power management module 114. For example, a user can provide an indication to the bandwidth selection module 112 to indicate a bandwidth preference of the user. For example, the bandwidth selection module 112 can indicate whether the client device 102 is to request fidelity priority content (e.g., at a high encoding rate, for example), which can require a relatively large amount of bandwidth resources to transmit to the client device 102. On the other hand, the user can provide an indication to the bandwidth selection module 112 to indicate whether the client device 102 is to request bandwidth-conserved content (e.g., at a lower encoding rate, for example), which can require relatively less bandwidth when compared to fidelity priority content. In some embodiments, the bandwidth selection module 112 can provide a user interface to the client device 102 so that the user can indicate a resolution of a video, for example, that the user prefers to receive. In some embodiments, the bandwidth selection module 112 can specify an absolute bandwidth amount, a relative bandwidth amount, can be limited for a period of time, can be limited to a particular connection (e.g., cellular or Wi-Fi), etc. In some embodiments, the bandwidth selection module 112 can determine a bandwidth based on a state of a battery, for example, by providing a higher bandwidth when the client device is connected to an external power source or when a battery is above a threshold amount, for example.
Additionally, the client device 102 can include the power management module 114 to monitor, regulate, alert, and/or report to the user of the client device 102 and/or to the network provider 104 or the content provider 106 a state of the power of the client device 102. In some embodiments, the power management module 114 can control the functions of the client device 102 to turn components on and off (or place components in low power and high power modes) to conserve power of the client device 102. For example, the client device 102 can utilize battery power with a finite capacity.
The network provider 104 can include a bandwidth selection module 116 and a transmission pattern selection module 118. In some embodiments, the bandwidth selection module 116 can receive an indication from the bandwidth selection module 112 of the client device 102 to inform the content provider 106 of the preference associated with the client device 102. For example, when the client device 102 requests content, the client device 102 can transmit the content request along with the bandwidth selection (e.g., fidelity priority or bandwidth-conservation) to the network provider 104, and the network provider 104 can transmit the request and the bandwidth selection information to the content provider 106. In some embodiments, the network provider 104 can establish the network path 108 between the network provider 104 and the content provider 106 to reflect the bandwidth selection of the client device 102. That is to say, by establishing the network path 108 as a fidelity priority bandwidth connection or a bandwidth-conserved connection, the network provider 104 can indirectly convey the bandwidth selection of the client device 102 to the content provider 106. In some embodiments, the network provider 104 can expressly transmit the client device 102 bandwidth selection to the content provider 106.
Based upon the direct or indirect indication of the bandwidth selection of the client device 102, the content provider 106 can provide content to the client device 102 at a particular bandwidth to the client device 102 in response to a request for the content.
The content provider 106 includes content 120 and a content encoding module 122. For example, the content 120 can include any data such as video, audio, images, text, programs, etc., that can available on the Internet, for example. In some embodiments, the content encoding module 122 can encode the content 120 at an encoding rate to vary a file size of the content based on an available bandwidth, latency, congestion, delay, noise, etc. of the network paths 108 and 110, for example. In general, when the network path 108 (or 110) is a fidelity priority bandwidth connection, the content encoding module 122 can encode the content 120 to provide a highest resolution, color depth, bit rate, etc. of the content. When the network path 108 (or 110) is a bandwidth-conserved connection, the content encoding module 122 can encode the content 120 to conserve bandwidth when transmitting the encoded content via the network paths 108 or 110. An example of content encoded at a bandwidth-conserved rate is illustrated as encoded content 124 in
Further, the transmission of the encoded content 124 is illustrated in a transmission graph 126 at a bandwidth-conserved rate 128. For example, the transmission graph 126 illustrates transmitting the encoded content 124 via the network path 108 between times T2 and T20.
The encoded content 124 is received at the network provider 104 and can be further transmitted to the client device 102. In some embodiments, the network provider 104 can transmit the encoded content 124 to the client device 102 in the same manner as illustrated in the transmission graph 126 (e.g., without applying a transmission pattern). That is to say, the network provider 104 can transmit the encoded content 124 at the bandwidth conserved rate 128 continuously for the same time periods to the client device 102 (e.g, between times T2 and T20). However, as can be understood in the context of this disclosure, a transceiver of the client device 102 must be on and active to receive the encoded content 124 in this manner. Thus, the transmission pattern selection module 118 can select a transmission pattern to transmit the encoded content 124 to the client device 102 to conserve power at the client device 102.
As illustrated in the transmission graph 130, the transmission pattern module 118 can segment the encoded content 124 into portions and can transmit bursty transmissions 132, 134, and 136 to the client device 102 at a maximum bandwidth rate 138. Because the transmission pattern illustrated in the transmission graph 130 transmits the bursty transmissions 132, 134, and 136 at the maximum rate between times T6-T7, T12-T13, and T18-T19, respectively, for example, the client device 102 only needs to be active and receiving during those respective time periods. In some embodiments, the client device 102 can conserve power during time periods when the network provider 104 is not transmitting data, and can therefore conserve power overall based in part on the transmission pattern. Further, because the illustrated transmission pattern does not use the entire bandwidth for the transmission, the average transmission rate of the bursty transmissions 132, 134, and 136 can be the bandwidth-conserved average 140. Further, because the time periods of transmission are not used in the illustrated transmission graph 130 (e.g., times T0-T6, T7-T12, T13-T18, etc.), the network provider 104 can provide additional content to other client devices during those times, thereby improving a functioning of the network by increasing the number of devices that can be served.
For example, the transmission pattern selection module 118 can select the transmission patterns 202, 204, and 206 based on a variety of factors, such as the type of content being transmitted (e.g., streaming video, data, voice calls, etc.), a target average bandwidth (e.g., averages 208, 210, and 212), network congestion, a subscription plan associated with the client device 102, indications from the bandwidth selection modules 116 and/or 112, etc. For example, if the bandwidth selection module 112 indicates that a bandwidth-conserved connection is to be used, and the client device 102 is requesting video content, the transmission pattern selection module 118 can select the transmission pattern 202 to transmit the video content to the client device 102.
Although only three transmission patterns 202, 204, and 206 are illustrated in
In some embodiments, the network paths 108 and 110 can comprise a mobile telecommunications network (MTN) configured to implement one or more of the second, third, and fourth generation (2G, 3G, and 4G) cellular-wireless access technologies discussed above. Thus, the MTN can implement GSM, UMTS, and/or LTE/LTE Advanced telecommunications technologies. Further, the network provider 104 and the content provider 106 implementing the GSM, UMTS, LTE, LTE Advanced, and/or HSPA+telecommunications technologies can include, but are not limited to, a combination of: base transceiver stations BTSs (e.g., NodeBs, Enhanced-NodeBs), Radio Network Controllers (RNCs), serving GPRS support nodes (SGSNs), gateway GPRS support nodes (GGSNs), proxies, a mobile switching center (MSC), a mobility management entity (MME), a serving gateway (SGW), a packet data network (PDN) gateway (PGW), an evolved packet data gateway (e-PDG), or any other data traffic control entity configured to communicate, convert, and/or route data packets between the client device 102, the network provider 104, and/or the content provider 106. While
As illustrated, the network provider 300 comprises a memory 302 storing the bandwidth selection module 304, the transmission pattern selection module 306, the connection monitoring module 308, and the content monitoring module 310. Also, the network provider 300 includes processor(s) 312, a removable storage 314 and non-removable storage 316, input device(s) 318, output device(s) 320, and transceiver(s) 322.
In various embodiments, memory 302 is volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. The bandwidth selection module 304, the transmission pattern selection module 306, the connection monitoring module 308, and the content monitoring module 310 stored in the memory 302 can comprise methods, threads, processes, applications or any other sort of executable instructions. The bandwidth selection module 304, the transmission pattern selection module 306, the connection monitoring module 308, and the content monitoring module 310 can also include files and databases. Further description of the bandwidth selection module 304 and the transmission pattern selection module 306 is provided above in connection with the bandwidth selection module 116 and the transmission pattern selection module 118 of
The connection monitoring module 308 can analyze a connection strength, a connection status, components and operations of the devices and networks to form accurate and precise assessments of a Quality of Service (QoS) and a Quality of Experience (QoE). For example, the connection monitoring module 308 can monitor network performance metrics indicating bandwidth and congestion, for example, such as packet loss, packet delay, or packet delay jitter. Further, in some embodiments, the QoS and/or QoE can be measured in accordance with key performance indicators including, but not limited to, Web page loading time, Domain Name System (DNS) lookup time, Transmission Control Protocol (TCP) connect time, TCP round trip time (RTT), Hypertext Transfer Protocol (HTTP) response time, application start times, searching delay, video start delay, fast forward and rewind delay, a number of buffering events, duration per buffering event, rebuffering ratio, a video frame rate, average/minimum/maximum bit rate, traffic burstiness, amount of data bytes transferred, TCP retransmissions and TCP resets, physical retransmissions, physical RTT, etc. The indicators provided above are presented as examples, and thus, the list is not exhaustive. Rather, network providers and/or content providers can contemplate a large number of different indicators which aid in gauging the QoS and QoE associated with the data services provided.
The content monitoring module 310 can monitor network traffic to determine a type of content transmitted from the content provider 106 to the client device 102, and/or between the client device 102 and other client devices. For example, the content monitoring module 310 can inspect packet headers to determine a traffic type, which in part, can be used to determine the transmission pattern to transmit data in the network for a particular communication.
In some embodiments, the processor(s) 312 is a central processing unit (CPU), a graphics processing unit (GPU), or both CPU and GPU, or other processing unit or component known in the art.
The network provider 300 also includes additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
The network provider 300 also can include input device(s) 318, such as a keypad, a cursor control, a touch-sensitive display, voice input device, etc., and output device(s) 320 such as a display, speakers, printers, etc. These devices are well known in the art and need not be discussed at length here.
As illustrated in
In some embodiments, the network provider 300 can correspond to the content provider 106 of
In various embodiments, memory 402 is volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. The bandwidth selection module 404, the power management module 406, the content buffer 408, and the content decoder 410 stored in the memory 402 can comprise methods, threads, processes, applications or any other sort of executable instructions. The bandwidth selection module 404, the power management module 406, the content buffer 408, and the content decoder 410 can also include files and databases.
In some embodiments, the bandwidth selection module 404 and the power management module 406 can correspond to the bandwidth selection module 112 and the power management module 114 of
In some embodiments, the content buffer 408 can store content at the client device 400 to provide a higher QoE when consuming content (e.g., watching, listening, reading, etc.). For example, in some embodiments, a user can indicate a preference for fidelity priority content, while at the same time, only a bandwidth-conserved connection is available to the client device 400. In such a case, the content provider 106 can provide the fidelity priority content to the client device 102 via a bandwidth-conserved connection (e.g., at a bandwidth-conserved rate). Rather than the content presentation starting and stopping as the content is transmitted at the client device 400, the content buffer 408 can store some or all of the content until enough content is stored such that playback can begin without interruption, with content being transmitted at the bandwidth-conserved rate. As can be understood in the context of this disclosure, this provides an ability for a user to select a preference in viewing fidelity priority content even when a network bandwidth is unavailable or must be conserved.
In some embodiments, the content decoder 410 can decode the encoded content received from the content provider 106. For example, and without limitation, the content decoder 410 can include codecs to decode audio encoded using protocols such as MP3, Vorbis, ACC, or video encoded with a video codec such as H.264, VP8, MP4, FLV, WebM, ASJ, or ISMA, at a variety of resolutions, bit rates, compression ratios, etc., as can be understood in the context of this disclosure.
In some embodiments, the processor(s) 412 is a central processing unit (CPU), a graphics processing unit (GPU), or both CPU and GPU, or other processing unit or component known in the art.
The client device 400 also includes additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
Client device 400 can include input device(s) 418, such as a keypad, a cursor control, a touch-sensitive display, etc. Also, the client device 400 can include output device(s) 420, such as a display, speakers, etc. These devices are well known in the art and need not be discussed at length here.
As illustrated in
At 502, the operation includes receiving a bandwidth conservation indication. For example, the bandwidth conservation indication can be set by a user in advance at the client device 102. In some embodiments, the bandwidth conservation indication can be received from the client device 102. In some embodiments, the bandwidth conservation indication can be set as a default, whereby an indication must be received at the client device 102 (and transmitted to the network provider 104) to change the default selection. In some embodiments, the bandwidth conservation indication can apply to specific content types (e.g., streaming or real time video or audio), and in some embodiments, the bandwidth conservation indication can apply to specific network addresses and/or domains. For example, the bandwidth conservation indication can be implemented such that content associated with a specific domain (e.g., nytimes.com) is to be transmitted at a bandwidth-conserved rate, while all other content can be transmitted at a higher transmission rate.
At 504, the operation includes initiating a bandwidth-conserved connection. For example, in the context of the environment illustrated in
At 506, the operation includes receiving bandwidth-conserved data at the network provider 104. In some embodiments, the bandwidth-conserved data can refer to the content that has been encoded by the content provider 106 to be transmitted via the bandwidth-conserved connection. In some embodiments, the bandwidth-conserved data received in the operation 506 can be a continuous stream of data, for example, as illustrated in the transmission graph 126. Further, the bandwidth-conserved data can be provided by the content provider 106 in response to the content provider 106 detecting the bandwidth rate associated with the bandwidth-conserved connection.
At 508, the operation includes determining the content type. In some embodiments, this operation can be performed by the content monitoring module 310 of the network provider 300. For example, the operation 508 can include inspecting a header of the content and determining an encoding type and/or file type to infer or determine the content type.
At 510, the operation includes determining a transmission pattern. In some embodiments, this operation can be performed by the transmission pattern selection module 118 or 306, for example. In some embodiments, the transmission pattern is determined based on a bandwidth that is available to transmit the content from the network provider 104 to the client device 102 (e.g., via the network path 110). For example, the available bandwidth can determine the transmission pattern that provides the average bandwidth equal to (or within a threshold value) of the available bandwidth. In some embodiments, the transmission pattern is determined based on a subscription plan associated with the client device 102 and/or whether the cumulative total of bandwidth used by the client device 102 is above a threshold amount for a particular time period. In some embodiments, the transmission pattern is determined based upon the network QoS, and can be based upon an amount of congestion, delay, etc. of the network. In some embodiments, the transmission pattern can be determined based on a bit rate of the encoded content and/or the total file size of the content to be transmitted to the client device 102. As can be understood in the context of this disclosure, these and other factors can be incorporated into determining the transmission pattern in the operation 510.
At 512, the operation includes transmitting the bandwidth-conserved data according to the transmission pattern determined in the operation 510. For example, the operation 512 can include wirelessly transmitting data to the client device 102 (e.g., via the network path 110) at a maximum burst rate but with a bandwidth-conserved average rate, in accordance with embodiments of the disclosure. In some embodiments, the operation 512 can include transmitting an indication of the transmission pattern to the client device 102 so that the client device 102 can enable and disable the radio link or modem of the client device (or enter low and high power states) to reduce a power consumption at the client device 102.
At 602, the operation includes receiving a fidelity priority indication. For example, the fidelity priority indication can be set by a user in advance at the client device 102. In some embodiments, the fidelity priority indication can be set as a default, whereby an indication must be received at the client device 102 to change the default selection. In some embodiments, the fidelity priority indication can apply to specific content types (e.g., streaming or real time video or audio), and in some embodiments, the fidelity priority indication can apply to specific network addresses and/or domains. For example, the fidelity priority indication can be implemented such that content associated with a specific domain (e.g., cnn.com) is to be transmitted at a fidelity priority rate, while all other content can be transmitted at a lower transmission rate. In some embodiments, the fidelity priority indication is a binary indication associated with the bandwidth conservation indication. That is to say, if the bandwidth conservation indication is turned on or enabled, the fidelity priority indication is turned off or disabled, and vice versa. In some embodiments, the fidelity priority indication can be enabled for some content and/or domains, while the bandwidth conservation indication can be enable for some other content and/or some other domains, for example. As described below, in some embodiments, the bandwidth conservation indication and the fidelity priority indication can be enabled for the same content and/or domains simultaneously to provide fidelity priority content over a bandwidth-conserved connection.
At 604, the operation includes initiating a fidelity priority bandwidth connection. For example, in the context of the environment illustrated in
At 606, the operation includes receiving fidelity priority data at the network provider 104. In some embodiments, the fidelity priority data can refer to the content that has been encoded by the content provider 106 to be transmitted via the fidelity priority bandwidth connection. In some embodiments, the fidelity priority data received in the operation 606 can be a continuous stream of data, for example, similar to the encoded content 124 as illustrated in the transmission graph 126, although in this case the encoded content 124 would be encoded at the fidelity priority data rate. Further, the fidelity priority data can be provided by the content provider 106 in response to the content provider 106 detecting the bandwidth rate associated with the fidelity priority bandwidth connection.
At 608, the operation includes determining the content type. In some embodiments, this operation can be performed by the content monitoring module 310 of the network provider 300. For example, the operation 608 can include inspecting a header of the content and determining an encoding type and/or file type to infer or determine the content type.
At 610, the operation includes determining a transmission bandwidth. For example, in the context of the environment illustrated in
At 612, the operation includes determining a transmission pattern. In some embodiments, this operation can be performed by the transmission pattern selection module 118 or 306, for example. In some embodiments, the transmission pattern is determined based on a bandwidth determined in the operation 610. In some embodiments, the transmission pattern is determined based on a subscription plan associated with the client device 102 and/or whether the cumulative total of bandwidth used by the client device 102 is above a threshold amount for a particular time period. In some embodiments, the transmission pattern is determined based upon the network QoS, and can be based upon an amount of congestion, delay, etc. of the network. In some embodiments, the transmission pattern can be determined based on a bit rate of the encoded content and/or the total file size of the content to be transmitted to the client device 102. As can be understood in the context of this disclosure, these and other factors can be incorporated into determining the transmission pattern in the operation 612.
At 614, the operation includes pre-caching the fidelity priority data at the client device. In some embodiments, this operation includes transmitting the fidelity priority data to the client device 102 with an indication that the client device 102 should not begin presenting the content (e.g., not playing a video or audio). In some embodiments, the fidelity priority data is pre-cached at the client device in the content buffer 408, for example.
At 616, the operation includes transmitting an indication to begin consuming the fidelity priority data. In some embodiments, the operation 616 includes determining an amount of the fidelity priority data pre-cached at the client device, a remaining amount of fidelity priority data to be transmitted, a transmission rate (e.g., according to the transmission pattern determined in the operation 612), and a bit rate or length of content to be presented. For example, the indication to begin consuming the data can be transmitted to the client device 102 when a probably of presenting the data without interruption or delay is above a threshold.
At 702, the operation includes selecting a mode to indicate a bandwidth conservation mode. In some embodiments, the selection can be as simple as turning the mode on or off. However, in some embodiments, the operation can include providing any number of specifics to define particular conditions in which the bandwidth conservation mode can be enabled. For example, the operation 702 can include setting up rules for when to activate the bandwidth conservation mode, such as according to content type, domain type, connection status, amount of content consumed at the client device, time (length) of data, etc.
At 704, the operation includes requesting content. For example, this operation can include operating any number of applications to request content, and/or navigating a browser to a webpage to consume content.
At 706, the operation can include receiving an indication of a transmission pattern, such as one determined by the network provider in the operation 510 or 612. In some embodiments, an express indication is received as a message or signal indicating the transmission pattern, while in some embodiments, the indication can be received by inferring the transmission pattern from receiving data. For example, the operation 706 can include receiving several periods of the transmission pattern and inferring the pattern of the bursty transmission. In some embodiments, the transmission patterns are predetermined and the particular transmission pattern is selected from a limited set of patterns.
At 708, the operation includes turning off a radio element of the client device to sleep based on the transmission pattern. For example, the transceiver 422 of the client device 400 can power down, sleep, or enter a low power mode to conserve power. In some embodiments, the operation includes a timer to wake the device up before the next scheduled or anticipated transmission.
At 710, the operation includes turning on a radio element of the client device 102, or enabling the client device (or the transceiver 422, for example) to receive a transmission.
At 712, the operation includes receiving content. In some embodiments, the operation includes receiving bandwidth-conserved content or fidelity priority content at the client device 102 that has been wirelessly transmitted to the client device 102 from the network provider 104 according to the transmission pattern.
At 714, the operation includes presenting the content. For example, this includes displaying a video and/or presenting audio in accordance with the content received in the operation 712. As indicated in
At 802, the operation includes receiving a request for content. For example, this request can be a request for any type of content in accordance with embodiment of this disclosure such as video, audio, images, text, or application data.
At 804, the operation includes determining connection characteristics. For example, this operation 804 can include determining or detecting a fidelity priority connection or a bandwidth-conserved connection established between the content provider 106, the network provider 104, and/or the client device 102. In some embodiments, this operation includes receiving an express indication of the bandwidth provided by the network provider 104 in the various network paths 108 or 110, for example. In some embodiments, this operation includes determining a QoS of the connections in the network paths 108 and/or 110.
At 806, the operation includes determining a content encoding based on the connection characteristics. For example, when a fidelity priority connection is determined (e.g., as the network path 108), the operation 806 can encode the content at a highest encoding rate to transmit high quality content. In another example, when a bandwidth-conserved connection is determined, the operation 806 can encode the content at a bandwidth-conserved rate to reduce an amount of content to be transmitted. As can be understood in the context of this disclosure, any number of encoding rates and/or connection quality levels can be used to provide a number of resolutions, bit rates, encoding types, compression amounts, etc. to match the content encoding to the available bandwidth.
At 808, the operation includes transmitting the content at the determined encoding to the network provider 104. As illustrated in
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claims.
Number | Name | Date | Kind |
---|---|---|---|
5794140 | Sawyer | Aug 1998 | A |
6282206 | Hindus | Aug 2001 | B1 |
6865426 | Schneck | Mar 2005 | B1 |
7840667 | Weller et al. | Nov 2010 | B2 |
8174970 | Adamczyk | May 2012 | B2 |
8838589 | Tam | Sep 2014 | B1 |
9648173 | Cheuk et al. | May 2017 | B2 |
9762635 | Sebastian et al. | Sep 2017 | B2 |
9769643 | Baron et al. | Sep 2017 | B2 |
9860136 | Ritter et al. | Jan 2018 | B2 |
10148482 | Zait et al. | Dec 2018 | B2 |
20020147766 | Vanska et al. | Oct 2002 | A1 |
20020190725 | Craven | Dec 2002 | A1 |
20030128674 | Kong | Jul 2003 | A1 |
20040114605 | Karaoguz | Jun 2004 | A1 |
20040119814 | Clisham | Jun 2004 | A1 |
20040213259 | Porter | Oct 2004 | A1 |
20040242203 | Lipsanen et al. | Dec 2004 | A1 |
20060036949 | Moore | Feb 2006 | A1 |
20060206617 | Rey et al. | Sep 2006 | A1 |
20070091843 | Patel et al. | Apr 2007 | A1 |
20070133412 | Nutter et al. | Jun 2007 | A1 |
20070133603 | Weaver | Jun 2007 | A1 |
20070136772 | Weaver | Jun 2007 | A1 |
20070189300 | Bellora et al. | Aug 2007 | A1 |
20070258465 | Ma et al. | Nov 2007 | A1 |
20080040226 | Roker | Feb 2008 | A1 |
20080070550 | Hose | Mar 2008 | A1 |
20080091824 | Patel et al. | Apr 2008 | A1 |
20080195664 | Maharajh et al. | Aug 2008 | A1 |
20080279112 | Schryer et al. | Nov 2008 | A1 |
20090068991 | Aaltonen et al. | Mar 2009 | A1 |
20090282162 | Mehrotra | Nov 2009 | A1 |
20100058401 | Beyabani | Mar 2010 | A1 |
20100066808 | Tucker | Mar 2010 | A1 |
20100085942 | Oota | Apr 2010 | A1 |
20100159924 | Lagerman et al. | Jun 2010 | A1 |
20100161387 | Harrang | Jun 2010 | A1 |
20100162297 | Lewis et al. | Jun 2010 | A1 |
20100179987 | Sebastian et al. | Jul 2010 | A1 |
20100254368 | Yamaura | Oct 2010 | A1 |
20100312623 | Almodovar Herraiz et al. | Dec 2010 | A1 |
20110167170 | Kowali | Jul 2011 | A1 |
20110231551 | Hassan et al. | Sep 2011 | A1 |
20120054809 | Chowdhury | Mar 2012 | A1 |
20120092435 | Wohlert | Apr 2012 | A1 |
20120209753 | Hodges | Aug 2012 | A1 |
20120311068 | Gladwin | Dec 2012 | A1 |
20130031279 | Venugopal et al. | Jan 2013 | A1 |
20130083761 | Pandey | Apr 2013 | A1 |
20130097674 | Jindal et al. | Apr 2013 | A1 |
20130100228 | Tapia et al. | Apr 2013 | A1 |
20130223509 | Tweedale | Aug 2013 | A1 |
20130231081 | Mo et al. | Sep 2013 | A1 |
20130254345 | Kook | Sep 2013 | A1 |
20130318252 | Bulava | Nov 2013 | A1 |
20140003450 | Bentley et al. | Jan 2014 | A1 |
20140146822 | Janardhanan et al. | May 2014 | A1 |
20140177497 | Backholm et al. | Jun 2014 | A1 |
20140181850 | Weaver et al. | Jun 2014 | A1 |
20140204740 | Tokutsu | Jul 2014 | A1 |
20140269677 | Fighel et al. | Sep 2014 | A1 |
20150003264 | Ma | Jan 2015 | A1 |
20150032883 | Chandrashekar | Jan 2015 | A1 |
20150088710 | Short et al. | Mar 2015 | A1 |
20150112830 | Boulter et al. | Apr 2015 | A1 |
20150113554 | Stern | Apr 2015 | A1 |
20150195150 | Ritter et al. | Jul 2015 | A1 |
20150237490 | Chang et al. | Aug 2015 | A1 |
20150281395 | Pandiarajan | Oct 2015 | A1 |
20150341491 | Lau et al. | Nov 2015 | A1 |
20160014630 | Xu et al. | Jan 2016 | A1 |
20160066276 | Su | Mar 2016 | A1 |
20160103589 | Dziuk | Apr 2016 | A1 |
20160192296 | Rehan et al. | Jun 2016 | A1 |
20160248916 | Payne, III et al. | Aug 2016 | A1 |
20160301582 | Arndt | Oct 2016 | A1 |
20170093942 | Danielsson et al. | Mar 2017 | A1 |
20170134459 | Shetty et al. | May 2017 | A1 |
20170171775 | Vagelos | Jun 2017 | A1 |
20170214804 | Payne, III et al. | Jul 2017 | A1 |
20180077292 | Ringberg et al. | Mar 2018 | A1 |
20190007376 | Norrman et al. | Jan 2019 | A1 |
20190141103 | Lau et al. | May 2019 | A1 |
Number | Date | Country |
---|---|---|
103152775 | Jun 2013 | CN |
103220377 | Jul 2013 | CN |
103222306 | Jul 2013 | CN |
103248474 | Aug 2013 | CN |
2858303 | Apr 2015 | EP |
WO2012172430 | Dec 2012 | WO |
WO-2018089227 | May 2018 | WO |
Entry |
---|
PCT Search Report and Written Opinion dated May 15, 2017 for PCT Application No. PCT/US17/15947, 9 pages. |
PCT Search Report and Written Opinion dated May 17, 2017 for PCT Application No. PCT/US17/16990, 14 pages. |
Low, “How to Turn Off T-Mobile's Binge On and Why You'd Want To—How to Turn Off T-Mobile's Binge On”, retrieved on May 20, 2016, available at <<http://www.tomsguide.com/us/how-to-turn-off-bingeon,review-3330.html>>, May 17, 2016, 12 pages. |
Michaels, “YouTube Finally Joins T-Mobile's Binge On”, retrieved on May 20, 2016, available at: <<http://www.tomsguide.com/us/youtube-joins-binge-on,news-22431.html>>, May 17, 2016, 2 pages. |
PCT Search Report and Written Opinion dated Feb. 2, 2017 for PCT application No. PCT/US2016/059899, 13 pages. |
Terzis et al., “Announcing the Mobile Data Plan API”, retrieved on Apr. 28, 2016, available at: <<http://youtube-eng.blogspot.com/2016/04/announcing-mobile-data-plan-api.html>>, Apr. 27, 2016, 4 pages. |
YouTube, “Mobile Data Plan API”, retrieved on Apr. 28, 2016, available at: <<https://docs.google.com/document/d/1LU3qzT-vpK38P2DKF-hLJIXV3hWo_fDPRBOOWZUIK_4/edit?pref=2&pli=1>>, 20 pages. |
Eisenach, “The Economics of Zero Rating”, NERA Economic Consulting, Insight in Economics, Mar. 2015, pp. 1-16. |
Office Action for U.S. Appl. No. 14/936,495, dated Mar. 5, 2018, Lau, “Data-Plan-Based Quality Setting Suggestions and Use Thereof to Manage Content Provider Services”, 4 pages. |
Office Action for U.S. Appl. No. 15/214,033, dated Apr. 2, 2018, Shetty, “Preference-Aware Content Streaming I”, 15 pages. |
Office Action for U.S. Appl. No. 14/936,495, dated Jun. 18, 2018, Lau, “Data-Plan-Based Quality Setting Suggestions and Use Thereof to Manage Content Provider Services”, 12 pages. |
Broida, “Force YouTube to Play HD Videos Every Time”, retreived on Sep. 9, 2018 at <<https://www.pcworld.com/article/199532/Force_YouTube_to_Piay_H D_ Videos_Every_ Time.html>, PCWorld, Jun. 22, 2010. |
Killoran, “Why does YouTube on Firefox offer so few quality options even if the video can be viewed in higher quality on Chrome or when it is embedded?”, retrieved on Sep. 19, 2018 at «https://support.mozilla.org/en-US/questions/1006250», 2014. |
Office Action for U.S. Appl. No. 15/214,033, dated Sep. 25, 2018, Shetty et al, “Preference-Aware Content Streaming”, 17 pages. |
“YouTube—Broadcast Yourself.” May 22, 2010. Retrieved Jan. 4, 2019, from «https://web.archive.org/web/20100522050653/https://www.youtube.com/create_account», 1 page. |
Partial Supplementary European Search Report dated Mar. 1, 2019 for European Patent Application No. 16864787.3, 12 pages. |
Extended European Search Report dated Jun. 7, 2019 for European Patent Application No. 16864787.3, 10 pages. |
Extended European Search Report dated Jun. 26, 2019 for European Patent Application No. 17767120.3, 7 pages. |
Extended European Search Report dated Jul. 3, 2019 for European Patent Application No. 17750581.5, a counter part of U.S. Appl. No. 15/018,649, 8 pages. |
Office Action for U.S. Appl. No. 16/235,892, dated Sep. 20, 2019, Lau, “Data-Plan-Based Quality Suggestions and Use Thereof to Manage Content Provider Services,” 11 pages. |
Chinese Office Action dated Mar. 4, 2020 for Chinese Patent Application No. 201680065278.4, a counterpart of U.S. Pat. No. 10,193,943, 10 pages. |
English translation of and Chinese Office Action dated Mar. 4, 2020 for Chinese Patent Application No. 201680065278.4, a counterpart of U.S. Pat. No. 10,193,943, 36 pages. |
European Office Action dated May 27, 2020 for European Patent Application No. 177671203, a counterpart of U.S. Pat. No. 10,305,952, 5 pages. |
Number | Date | Country | |
---|---|---|---|
20170230292 A1 | Aug 2017 | US |