Video start time reduction using reduced edge processing principles

文档序号:24168 发布日期:2021-09-21 浏览:29次 中文

阅读说明:本技术 采用归约边缘处理原则的视频开始时间减少 (Video start time reduction using reduced edge processing principles ) 是由 B.桑加维 J.弗里曼 A.黄 S.斯里达兰 于 2019-09-27 设计创作,主要内容包括:在接收到来自客户端装置的对来自内容分发网络(CDN)的信息的请求之前,归约边缘处理装置从CDN请求所述信息并将其存储在存储器中。因此,所述归约边缘处理装置被配置为利用在接收到所述请求之前存储在所述存储器中的所述信息来响应来自所述客户端装置的对来自所述CDN的信息的所述请求。(Prior to receiving a request from a client device for information from a Content Delivery Network (CDN), a reduction edge processing device requests the information from the CDN and stores it in memory. Thus, the reduction edge processing device is configured to respond to the request for information from the CDN from the client device with the information stored in the memory prior to receiving the request.)

1. A reduction edge processing apparatus, comprising:

a processor;

a memory coupled to the processor;

non-transitory instructions embedded in the memory that, when executed by the processor, cause a device to perform a method for reducing edge processing, the method comprising:

prior to receiving a request from a client device for information from a Content Delivery Network (CDN), requesting the information from the CDN and storing the information in a memory;

whereby the reduction edge processing device is configured to respond to the request for information from the CDN from the client device with the information stored in the memory prior to receiving the request.

2. The reduction edge processing device of claim 1, wherein the information from the CDN is a master playlist.

3. The reduction edge processing device of claim 1, wherein the information from the CDN is a media playlist.

4. The reduction edge processing apparatus of claim 1, wherein the method further comprises: requesting and receiving a media encryption key from a key server and storing the media encryption key in the memory prior to receiving the request from the client device.

5. The reduction edge processing apparatus of claim 1, wherein the non-transitory instructions embedded in the memory further comprise:

one or more instructions that when executed cause a media pre-fetching device to utilize the information stored in memory to respond to a request from a client device for information from the CDN.

6. The reduction edge processing apparatus of claim 5, wherein responding to the request with the information stored in memory comprises: the CDN location is forwarded to a media frame server.

7. The reduction edge processing apparatus of claim 5, wherein responding to the request with the information stored in the memory comprises: requesting and receiving a content playlist from the CDN and sending the content playlist to the client device.

8. The reduction edge processing apparatus of claim 5, wherein the information from the CDN is a master playlist, and wherein responding to the request with the information stored in memory comprises: sending the master playlist to the client device.

9. The reduction edge processing apparatus of claim 5, wherein the information from the CDN is a media playlist, and wherein responding to the request with the information stored in memory comprises: sending the media playlist to the client device.

10. The reduction edge processing apparatus of claim 1, wherein the non-transitory instructions embedded in the memory further comprise:

one or more instructions that when executed cause a media pre-fetching apparatus to request and receive media segments from the CDN and store the media segments in a memory.

11. The reduction edge processing apparatus of claim 10, wherein the instructions further comprise:

one or more instructions that when executed cause the media pre-fetching means to send the stored media segments to the client device.

12. The reduction edge processing apparatus of claim 10, wherein the instructions further comprise:

one or more instructions that when executed cause the media pre-fetching device to request a media segment from the CDN prior to receiving the media segment request from the client device.

13. The reduction edge processing apparatus of claim 12, wherein the instructions further comprise:

one or more instructions that when executed cause the media pre-fetching means to request non-stored media segments from the CDN.

14. The reduction edge processing apparatus of claim 12, wherein the instructions further comprise:

one or more instructions that when executed cause the media pre-fetching means to request non-stored media segments from the CDN after receiving a media segment request from the client device.

15. The reduction edge processing device of claim 1, further comprising a network interface coupled to the processor and configured to connect the reduction edge processing device to a network, wherein the non-transitory instructions embedded in the memory comprise one or more instructions for processing a request from the client device received from the client over the network via the network interface.

16. The reduction edge processing device of claim 1, further comprising a local connection coupled to the processor and configured to connect the reduction edge processing device to the client device, wherein the non-transitory instructions embedded in the memory comprise one or more instructions for processing a request from the client device received from the client via the local connection.

17. The reduction edge processing apparatus of claim 1, wherein the reduction edge processing apparatus is an embedded hardware component of the client apparatus, and wherein reduction edge processing apparatus is configured to receive requests from an application running on the client apparatus.

18. The reduction edge processing apparatus of claim 1, wherein the reduction edge processing apparatus is implemented as an embedded software component of the client device, and wherein reduction edge processing apparatus is configured to receive requests from applications running on the client device.

19. An instruction embodied in a non-transitory computer readable medium, the instruction when executed by a processor causing the processor to implement a method comprising:

prior to receiving a request from a client device for information from a Content Delivery Network (CDN), requesting the information from the CDN and storing the information in a memory;

responding to the request from the client device for information from the CDN with the information stored in memory prior to receiving the request.

20. A method for reducing edge processing, comprising:

prior to receiving a request from a client device for information from a Content Delivery Network (CDN), requesting the information from the CDN and storing the information in a memory;

respond to the request from the client device for information from the CDN with the information stored in the memory.

Technical Field

The present disclosure relates to online media streaming. In particular, the present disclosure relates to enhancements to HTTP real-time streaming (HLS).

Background

Over-the-top video streaming is becoming more and more popular compared to television. Despite its popularity, over-the-top (OTT) video streaming does have some drawbacks compared to broadcast and cable television. In particular, adaptive bitrate streaming, such as adaptive bitrate streaming, requires a connection handshake and a set of playlists.

In addition, the streaming video application must download and buffer the video data and its associated manifest before the video can be played. Thus, there is typically some delay between the user selecting to view the streaming video and actually playing the video. Such delays can be frustrating to users, especially when high network congestion or slow network conditions.

In addition, it is desirable to implement a single solution to reduce video start time across multiple devices (such as PS4, Roku, apple tv, Android cell phone, etc.). However, a barrier to such solutions arises because all HTTP requests need to go through connection, setup and handshake operations. HTTP is typically stateless and therefore does not always remember or utilize information from previous requests. The main drawback is that the server is not optimized for many adaptive bitrate streaming protocols because they do not utilize the most predictable request patterns. It is also difficult or infeasible for all playback clients to achieve all networking optimizations when interacting with the server.

It is in this context that embodiments of the present disclosure are presented.

Drawings

Aspects of the present disclosure may be readily understood by considering the following detailed description in conjunction with the accompanying drawings, in which:

fig. 1A shows the general architecture of an Adaptive Bitrate (ABR) multimedia streaming system.

Fig. 1B illustrates the operation of a prior art client device in the HLS system of fig. 1A.

Fig. 2A illustrates an HLS system enhanced with reduction edge processing according to aspects of the present disclosure.

Fig. 2B depicts a method of operation of a reduction edge processing device in communication with a client device, in accordance with aspects of the present disclosure.

Fig. 3 illustrates a stand-alone reduction edge processing apparatus according to aspects of the present disclosure.

Fig. 4 depicts an embedded reduction edge processing system according to aspects of the present disclosure.

Detailed Description

Although the following detailed description contains many specific details for the purposes of illustration, one of ordinary skill in the art will appreciate that many variations and alterations to the following details are within the scope of the disclosure. Accordingly, the examples of embodiments of the present disclosure described below are set forth without any loss of generality to, and without implying a limitation on, the claimed disclosure.

Although numerous specific details are set forth in order to provide a thorough understanding of embodiments of the present disclosure, it will be understood by those skilled in the art that other embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present disclosure. Some portions of the description herein are presented in terms of algorithms and symbolic representations of operations on data bits or binary digital signals within a computer memory. These algorithmic descriptions and representations may be the techniques used by those skilled in the data processing arts to convey the substance of their work to others skilled in the art.

An algorithm, as the term is used here, is a self-consistent sequence of acts or operations leading to a desired result. These include physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

Unless specifically stated otherwise, or as is apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as "processing," "computing," "converting," "coordinating," "determining," or "identifying" or the like, refer to the action and processes of a computer platform, which is an electronic computing device that includes a processor that manipulates and transforms data represented as physical (e.g., electronic) quantities within the processor registers and accessible platform memory into other data similarly represented as physical quantities within the computer platform memories, processor registers or display screens.

The computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks (e.g., compact disk read only memories (CD-ROMs), Digital Video Disks (DVDs), Blu-Ray Discs (DVDs), etc.)TMEtc.), as well as magnetic-optical disks, read-only memories (ROMs), Random Access Memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memory, or any other type of non-transitory medium suitable for storing electronic instructions.

Introduction to the design reside in

Aspects of the present disclosure address the shortcomings associated with existing adaptive bitrate streaming systems by using a reduction edge processor to address parity performance issues in a cross-platform client environment. In handling adaptive bitrate streaming, video is used on a variety of client devices with relatively equal functionality.

The problem, referred to herein as the "edge handling" problem, is how to have all of these cross-platform clients equally capable of accessing content hosted by a Content Delivery Network (CDN). It is unlikely and unreasonable to assume that all of the advanced edge processing techniques can be implemented by these devices. The reduction edge processing architecture according to aspects of the present disclosure provides edge intelligence in components external to the client device or client application, so the client may be able to use advanced edge processing techniques without having to fundamentally reconfigure the client device or application.

A related problem is one of the "playback robustness", i.e., the ability of the client device or application to efficiently handle adaptive bitrate streaming. This is non-trivial, especially in dealing with edge syntax and characteristics, delay, errors, adaptive bitrate, etc. This is more complicated than the edge handling problem.

As described herein, the reduction edge processing techniques alleviate the edge processing and robustness responsibilities of client devices and applications, enabling them to perform well on simpler tasks. The reducing edge processors that assume these responsibilities are a salient feature of aspects of the present disclosure.

Adaptive bit rate streaming architecture

Fig. 1A shows the general architecture of an Adaptive Bitrate (ABR) multimedia streaming system 100. Examples of common protocols for ABR streaming multimedia on personal computers, set-top box television devices, telephones, and tablets include HTTP real-time streaming (HLS) and dynamic adaptive streaming over HTTP (DASH). The multimedia streaming system 100 includes a media framework 102, a content distribution network and server 106, a key server 108, and a client device 104 connected by a network 101.

A Content Delivery Network (CDN)106 includes a plurality of servers and data servers configured to provide efficient multimedia content to geographically dispersed client devices 104 over the network 101. The key server 108 provides the client device 104 with the encryption key. The encryption key is used to decrypt media content from the CDN106, which may be encrypted for Digital Rights Management (DRM) purposes. The media framework 102 provides the network 101 location of the video content delivered by the CDN106 via a Uniform Resource Locator (URL) or the like.

Fig. 1B illustrates the operation of a prior art client device in the HLS system 100. Before the media can be played on the client device 104, the client device 104 sends a request to the media framework 102 for the location of the media stream on the CDN 106. The media framework 102 sends the location of the CDN106 back to the client device 104. The location may be, for example, but not limited to, a URL, an internet protocol address (IP address), or the like.

The client device 104 then contacts the CDN106 to request the master playlist. The master playlist provides a list of locations containing media presentations under alternative renditions of different bitrates, different formats, or content. The CDN106 then responds by sending the master playlist back to the client device 104.

The client device may then select a particular rendition of the media presentation. This may be done by the ABR mechanism of the client to computationally and dynamically determine the optimal bitrate selection and corresponding rendering. In response to the selection of rendering, the client device 104 sends a request for a media playlist to the CDN 106. A media playlist provides a list containing keys for media presentations and the location of video segments under a particular format, bit rate, etc. The CDN106 sends the media playlist, and the media playlist is received at the client device 104.

To prepare for media playback of the encrypted stream, the client device 104 can contact the key server 108 by sending a request for an encryption key specific to the media presentation video segment. The key server 108 then sends the requested key, which is received by the client device 104. This process is optional because not all streams are encrypted and there may be no keys under other forms of security.

The client device begins streaming the media presentation by sending a request for a media segment to the CDN 106. The CDN106 begins sending media segments in the same way, which are received at the client device 104. The media segments are encoded audio, closed caption data, metadata and control data and/or video segments of the media presentation that when played together in sequence result in a full-length media presentation. The media segments may be encoded, in which case the client device may decrypt the media segments and begin playback using a key received from the key server. For more information on HLS system architecture, see: pantos, r.p. "HTTP real-time streaming", solicitation for comments draft 8216, network working group: 1, provided herein: https:// tools. ietf.org/html/rfc8216 (8 months 2017), incorporated herein by reference.

Reduced edge processing enhanced streaming

Fig. 2A illustrates an HLS system enhanced with reduction edge processing according to aspects of the present disclosure. Using a reduced edge processing device or embedded device 210 may enhance the user experience of HLS-based streaming through faster device start times and reduced buffering times. A 64% faster buffer time and 60% faster start time have been achieved using embodiments of the present disclosure.

Reduction edge processing may be performed by a client device 204 with an embedded reduction edge processing device 210 or by a client device 203 connected to a local reduction edge processing device 210 or by a client device in communication with reduction edge processing device 210 over network 101. The embedded reduction edge processing device may be created within dedicated circuitry of the client device or as a separate dedicated module having dedicated instructions, a processor, and a memory coupled to the processor of the client device by, for example, a communication bus. In some implementations, the reduction edge processing may be implemented as a software service on the device or its Operating System (OS).

The network may be, for example, but not limited to, the internet, a Local Area Network (LAN), or some other type of Wide Area Network (WAN). During operation, the pre-fetch means may communicate with the media framework 202, the key server 208, the CDN206, or any combination thereof, over the network 101. In some implementations, the prefetching means may communicate through the client device. For example, the media pre-fetching device may use a network interface of the client device to communicate with the server over the network 101.

Fig. 2B depicts a method of operation of a reduction edge processing device in communication with a client device, in accordance with aspects of the present disclosure. The media pre-fetching device begins operation before the client device begins communication with the server hosting HLS data, as indicated by double-line 220. In some implementations, the client device may not be powered when the process performs operations above the dual line 220.

The reduction edge processing device 210 may begin operation by sending a request to a Domain Name System (DNS) for the location of the media framework server 202. The DNS typically sends the location of the media framework server back to the reduction edge processing device 210 in the form of an IP address, where it is received. In some implementations, the reduction edge processing device 210 can contact a trusted source and download a Secure Sockets Layer (SSL) certificate for encrypted communications. The trusted source may be part of the media framework 202. During communication with the SSL-enabled server, the communication is encrypted using the SSL certificate. This encryption ensures that the communication intercepted by the third party, which is carried out by the server to the client and vice versa, will be unintelligible.

The reduction edge processing device 210 may then send a request for the location of the CDN to the media framework 202. The media framework 202 may return the location of the CDN to the reduction edge processing device 210. The location of the CDN is then stored and used for subsequent communications. The reduction edge processing device 210 sends a communication over the network to the CDN206 requesting the master playlist. In response, the CDN206 sends a master playlist over the network, where the master playlist is received by the reduction edge processing device 210. Then, the reduction edge processing means 210 stores the master playlist.

As described above, the master playlist contains a list of locations of the media presentation at different bitrates, different formats, or alternative versions of the content. The number of different media presentations on the CDN206 is limited. Thus, to speed up the streaming process, in some implementations, the media prefetcher may request a master playlist that includes each media presentation on the CDN 206. The master playlist is then stored in memory or mass storage. In some implementations, the reduction edge processing device 210 can predictively request the master playlist to reduce the download time and storage space required for the master playlist. For example, but not limiting of, the reduction edge processing device may track the user's viewing habits in a watch so that the device has a record of the last time the user viewed the content. The device may download the master list of content before the user requests to view the content or even launches the client device. Similarly, for games, the system may track games that the user plays frequently and download the master list if the game play time or number of sessions for the game exceeds a certain threshold. Note that while this implementation is described in the context of a game, it may also be applied to other media types, such as video or music.

Once the master playlist is received at the reduction edge processing device 210, the reduction edge processing device 210 can send a request for a media playlist to the CDN 206. Similar to the master playlist, there are a limited number of media presentations on the CDN 206. Thus, the reduction edge processing device may request a media playlist for each media presentation on the CDN 206. The prediction method can also be used to reduce the number of downloaded content playlists. The prediction methods for the prospective extraction of the content list are substantially similar to those described above with respect to the main play list. It is noted that the tracking of user activity of content playlists must be more refined because content playlists represent specific media presentations, while master playlists represent collections of media presentations having different bitrates, different formats, or alternative versions of content.

After the CDN206 receives the request for the media playlist, it sends the media playlist over the network to the reduction edge processing device 210. The media playlist is received by the reduction edge processing device 210 and stored in memory or mass storage.

The reduction edge processing device 210 may then request a key from the key server 208 for each media playlist received from the CDN 206. After the reduction edge processing device 210 receives the keys from the key server 208, the keys are stored in memory or mass storage.

Once the user initializes the streaming system on the client device 203, communication between the client device 203 and the reduction edge processing device 210 may begin. The client device may be configured to communicate with the reduction edge processing device as if it were part of the media framework and in the content delivery network. Thus, the reduction edge processing device 210 may receive a request for a CDN location from the client device 203. The reduction edge processing device 210 forwards the request to the media framework 202. The media framework 202 replies with a CDN location received by the client device 203. At the same time, the reduction edge processing device 210 sends a content playlist request to the CDN 206. The CDN206 sends the content playlist and the content playlist is received by the reduction edge processing device 210.

After receiving the CDN location, the client device 203 sends a request for a master playlist to the reduction edge processing device 210. The client device 203 may be configured to request a playlist from the reduction edge processing device 210 prior to contacting the CDN206 or in lieu of the CDN 206. After receiving the request for the master playlist, the reduction edge processing device 210 may send the requested master playlist to the client device 203. Since the reduction edge processing device has received all the master playlists from the CDN earlier, the device already has each master playlist in memory. In implementations where the master playlist is predictively requested, the memory contains master playlists that may be requested, so there is a possibility that the prediction is incorrect, and in this case, the request will be forwarded to the CDN 206.

After receiving the master playlist request, the reduction edge processing device 210 may also send a request for media segments to the CDN206 for prospective caching. In some implementations, the reduction edge processing device 210 can request the media segments of each of the media playlists in the master playlist requested by the client device 203. In other implementations, the reduction edge processing apparatus 210 can track the most recently requested media playlists and can request media segments from the same media playlists or congruent media playlists. By way of example and not limitation, the reduction edge processing device may maintain a table of five most recently requested media playlists, downloaded media segments, and the like. There may be some meta information about each media playlist, for example, a table entry may have information about the order in which the media playlists are typically requested, and about the location of the next media playlist that may be requested, i.e., "previous view: deadman 1 st set-next set: 2 nd set of deadly poisoned officials-location of next set: location. The reduction edge processing means may request a media segment from the media consistent with the meta-information, such as but not limited to the next episode in the series. In other implementations, the table may track user preferences such as language and connection speed, and request media segments from the master list that match those preferences.

After receiving the request for the media segment, the CDN206 starts sending the media segment to the reduction edge processing device 210. The reduction edge processing device 210 receives and stores media segments from the CDN 206. The media segments may be stored in a memory, for example in a buffer or in a mass storage device.

The client device 203 may request a media playlist from the reduction edge processing device 210. In response, the reduction edge processing device 210 can send the media playlist to the client device 203. The reduction edge processing device 210 already has all of the media playlists of the requested master playlist in memory, so only the requested media playlists need be retrieved from memory.

Next, the client device 203 may request the media segment from the reduction edge processing device 210. When a request for a media segment is received at the reduction edge processing device 210, the reduction edge processing device may query its memory or mass storage device for the media segment. If the media segment is found, the reduction edge processing device sends the segment to the client device 203. If the media segment is not found, a request for the media segment is sent to the CDN 206. Upon receiving a request for a media segment, the CDN sends the requested media segment to the reduction edge processing device 210. The reduction edge processing means 210 stores the media segment in a memory or mass storage means after receiving the media segment. The newly stored media segment may then be transmitted to the client device 203. As described above, the media segment may be encrypted as part of the DRM protection, and thus, as part of the storage process, the reduction edge processing device 210 decrypts the media segment using the correct key received from the key server. In other implementations, the media segments may be decrypted before being sent to the client device. Once the media segments are sent from the CDN206 and received at the reduction edge processing apparatus 210, the reduction edge processing apparatus 206 may store the media segments before the client apparatus 203 and send them to the client 203 apparatus as needed.

Self-contained reduction edge processing system

Fig. 3 illustrates a stand-alone reduction edge processing apparatus according to aspects of the present disclosure. The stand alone reduction edge processing device or edge processor 300 may be coupled to the local client device 302 through a LAN or WAN through a network interface 307. In other alternative implementations, the stand-alone reduction edge processing device may communicate with a non-native device 303 (e.g., a server or another client) over a large network 304, such as the internet, through a network interface 307. In some implementations, the client device is connected to the stand-alone reduction edge processing device through a communication bus (not shown), such as, but not limited to, a peripheral interconnect (PCI) bus, a PCI express bus, a Universal Serial Bus (USB), an ethernet port, a firewire connector, or similar interface.

The stand-alone reduced edge processing apparatus 300 may include one or more processor units 306, which may be configured according to well-known architectures (e.g., single core, dual core, quad core, multi core, processor-co-processor, cell processor, etc.). The stand-alone reduction edge processing device 300 may also include one or more memory units 305 (e.g., Random Access Memory (RAM), Dynamic Random Access Memory (DRAM), Read Only Memory (ROM), etc.).

The processor unit 306 may execute one or more instructions 308, portions of which may be stored in the memory 305, and the processor 306 may be operatively coupled to the memory by a bus or bus type connection. The instructions 308 may be configured to implement the method for prefetching in an HLS system shown in fig. 2B. Additionally, the memory 305 may contain instructions for storing playlists in the HLS library and a protocol stack that defines the location of the HLS server. The memory 305 may also contain an HLS library 310 and a protocol stack 311. The instructions 308 may further enable storing the media segments in the cache 309 during operation. Cache 309 may also be located in memory 305.

The stand alone reduction edge processing apparatus 300 may include a network interface 307 to facilitate communications via the electronic communications network 304. Network interface 307 may be configured to enable wired or wireless communication over local and wide area networks, such as the internet. The apparatus 300 may send and receive data and/or requests for files via one or more message packets over the network 304. Message packets sent over network 304 may be temporarily stored in cache 309 in memory 305. Client device 302 may connect to electronic communications network 304 through network interface 307. Alternatively, the client device 303 may communicate with the stand-alone reduction edge processing device 300 over the electronic communication network 304.

Embedded reduction edge processing system

Fig. 4 depicts an embedded reduction edge processing system according to aspects of the present disclosure. The embedded reduction edge processing system may include a client computing device 400 coupled to a user input device 402. The user input device 402 may be a controller, touch screen, microphone, keyboard, mouse, joystick, or other device that allows a user to input information, including voice data, into the system.

The client devices of embedded reduction edge processing system 400 may include one or more processor units 403, which may be configured according to well-known architectures (e.g., single core, dual core, quad core, multi core, processor-co-processor, cell processor, etc.). The computing device may also include one or more memory units 404 (e.g., Random Access Memory (RAM), Dynamic Random Access Memory (DRAM), Read Only Memory (ROM), etc.).

Processor unit 403 may execute one or more programs, portions of which may be stored in memory 404, and processor 403 may be operatively coupled to the memory (e.g., by accessing the memory via data bus 405). The program may be configured to implement streaming media through the HLS system 408. Additionally, memory 404 may contain information regarding connections between the system and one or more streaming servers 410. The memory 404 may also contain buffers for media segments 409. The media segments and connection information may also be stored as data 418 in the mass storage area 418.

Computing device 400 may also include well-known support circuits such as input/output (I/O)407, circuitry, power supplies (P/S)411, a Clock (CLK)412, and cache 413, which may communicate with other components of the system, e.g., via bus 405. The computing device may include a network interface 414. The processor unit 403 and the network interface 414 may be configured to implement a Local Area Network (LAN) or a Personal Area Network (PAN) via a suitable network protocol, such as bluetooth for PANs. The computing device may optionally include a mass storage device 415 (such as a disk drive, CD-ROM drive, tape drive, flash memory, etc.), and the mass storage device may store programs and/or data. The computing device may also include a user interface 416 to facilitate interaction between the system and the user. The user interface may include a monitor, television screen, speaker, headphones, or other device that conveys information to the user.

Computing device 400 may include a network interface 414 to facilitate communications via an electronic communication network 420. Network interface 414 may be configured to enable wired or wireless communication over local and wide area networks, such as the internet. The apparatus 400 may send and receive data and/or requests for files via one or more message packets over the network 420. Message packets sent over network 420 may be temporarily stored in buffer 409 in memory 404.

In some implementations, embedded reduction edge processing or embedded edge processor 421 may be an embedded hardware component of client device 400, which may be coupled to a host processor via a bus, and may receive requests from applications (e.g., streaming applications) running on the client device. In some implementations, the embedded edge processor 421 may initiate and intercept network communications for a CDN or other server. In these implementations, the embedded edge processor 421 may lack a network interface, or may not use a network interface. In other implementations, embedded edge processors, the functions of which may be implemented in streaming software 408 stored in memory 404 or in programs 417 stored in mass storage area 415 and executed on processor 403.

In some alternative implementations, the embedded edge processor 421 may be an external device coupled to the client device 400, for example, via a local non-network connection (such as the I/O function 407).

The processor of the embedded edge processor unit 421 may execute one or more instructions 424, portions of which may be stored in the edge processor memory 422, and the processor 423 may be operatively coupled to the memory 422 by a bus or bus-type connection. The instructions 424 may be configured to implement the method for prefetching in an HLS system shown in fig. 2B. Additionally, the memory 422 may contain instructions for storing playlists in the HLS library and a protocol stack that defines the location of the HLS server. Memory 422 may also contain HLS library 310 and protocol stack 311. The instructions 424 may further enable storage of the media segments as data 425 during operation. Alternatively, the HLS library, protocol stack, and media segments may be stored in buffer 408 on client device 400, or in memory 404 as connection information 408, or in mass storage area 415 as data 418.

While the above is a complete description of the preferred embodiments of the present disclosure, it is possible to use various alternatives, modifications, and equivalents. It is to be understood that the above description is intended to be illustrative, and not restrictive. For example, while the flow diagrams in the figures show a particular order of operations performed by certain embodiments of the disclosure, it should be understood that such order is not necessary (e.g., alternative embodiments may perform the operations in a different order, combine certain operations, overlap certain operations, etc.). Moreover, many other embodiments will be apparent to those of skill in the art upon reading and understanding the above description. While the present disclosure has been described with reference to specific exemplary embodiments, it will be recognized that the present disclosure is not limited to the described embodiments, but may be practiced in the appended claimsAnd within the spirit and scope to practice with modifications and variations. The scope of the disclosure should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. Any feature described herein (whether preferred or not) may be combined with any other feature described herein (whether preferred or not). In the context of the appended claims,the indefinite article "a" or "an"Refers to the amount of one or more of the items following the article, unless explicitly stated otherwise herein. The appended claims should not be read as including device-added functional limitations unless such limitations are expressly set forth in a given claim using the phrase "means for … …".

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:使用CSV分配批量用户服务的系统和方法

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!