WO2012178174A1 - Intelligent buffering of media streams delivered over internet - Google Patents
Intelligent buffering of media streams delivered over internet Download PDFInfo
- Publication number
- WO2012178174A1 WO2012178174A1 PCT/US2012/044033 US2012044033W WO2012178174A1 WO 2012178174 A1 WO2012178174 A1 WO 2012178174A1 US 2012044033 W US2012044033 W US 2012044033W WO 2012178174 A1 WO2012178174 A1 WO 2012178174A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- multimedia content
- content stream
- bitrate
- buffer
- size
- Prior art date
Links
- 230000003139 buffering effect Effects 0.000 title abstract description 38
- 239000000872 buffer Substances 0.000 claims abstract description 49
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000003044 adaptive effect Effects 0.000 claims abstract description 26
- 238000004891 communication Methods 0.000 claims description 11
- 230000007423 decrease Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 16
- 238000013500 data storage Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000007723 transport mechanism Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2408—Monitoring of the upstream path of the transmission network, e.g. client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234327—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
-
- 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/70—Media network packetisation
-
- 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
-
- 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/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6156—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
- H04N21/6175—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/64322—IP
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6587—Control parameters, e.g. trick play commands, viewpoint selection
Definitions
- over-the-top (OTT) service refers to a service from a third-party that a user of a network accesses via the network.
- OTT services ride on top of the services that the user gets from the network operator, and have no business or technology affiliation with the network operator.
- long distance telephone service is an OTT service for a user who obtains their long distance telephone service from a company that offers the long distance telephone service over a telephone network operated by another telephone company.
- internet search engines and social networks are OTT services that provide value to the users of a network, but that are not owned or managed by the traditional network carriers.
- Adaptive streaming is a process that adjusts the quality of a video stream based on changing network conditions to ensure the best possible viewing experience.
- Internet connection speeds vary widely, and the speed of each type of connection also varies depending on a wide variety of conditions. If a user connects to an Internet Service Provider (ISP) at 56 Kbps, that does not mean that 56 Kbps is available at all times.
- ISP Internet Service Provider
- Bandwidth can vary, meaning that a 56 Kbps connection may decrease or increase based on current network conditions, causing video quality to fluctuate as well.
- Adaptive streaming adjusts the bitrate of the video to adapt to changing network conditions.
- Adaptive streaming includes hypertext transfer protocol (HTTP) live streaming (HLS), Smooth Streaming, WebM, and Motion Pictures Experts Group (MPEG) Dynamic Adaptive Streaming over HTTP (DASH).
- HTTP hypertext transfer protocol
- HLS live streaming
- Smooth Streaming WebM
- MPEG Motion Pictures Experts Group
- DASH Dynamic Adaptive Streaming over HTTP
- the bitstream is scalable in multi-dimensions such as resolution (size), bitrate (quality), position, color-component and frame -rate (temporal scalability).
- resolution size
- bitrate quality
- position position
- color-component position
- frame -rate temporary scalability
- aspects of the present invention provide a method and computing device for intelligently pre-buffering at access points in an adaptive or scalable stream to optimize trick-play support.
- the method receives a multimedia content stream from a multimedia content server as a series of segments, each segment including a key frame and corresponding to a predicted seek position in the multimedia content stream, where the multimedia content server delivers at least two versions of each segment, each version reconstructed from at least one encoded component of the multimedia content stream, the versions varying a characteristic of the multimedia content stream.
- the method determines a likelihood of receiving a seek request from a user to move from a current playout position to one of the predicted seek positions, and determines a size of a buffer for each version of each segment in the multimedia content stream based on the likelihood of receiving the seek request.
- FIG. 1 is a network diagram that illustrates one embodiment of the hardware components of a system that performs the present invention.
- FIG. 2 is a block diagram that illustrates, in detail, one embodiment of the hardware components shown in FIG. 1.
- FIG. 3 is a schematic diagram that illustrates one embodiment of a prior art single segment multimedia content pre-buffering method.
- FIG. 4 is a schematic diagram that illustrates one embodiment of a prior art multiple segment multimedia content pre-buffering method.
- FIG. 5 is a schematic diagram that illustrates a multiple segment multimedia content pre -buffering method according to one embodiment of the present invention.
- FIG. 6 is a network bandwidth chart that illustrates an adaptive chunked multimedia content pre -buffering method according to one embodiment of the present invention.
- FIG. 7 is a schematic diagram that illustrates a successive selection pre- buffering method based on bitrate according to one embodiment of the present invention.
- FIG. 8 is a schematic diagram that illustrates a successive selection pre- buffering method based on priority according to one embodiment of the present invention.
- FIG. 9 is a flow diagram that illustrates a successive selection pre-buffering method based on a learning model according to one embodiment of the present invention.
- FIG. 1 is a network diagram that illustrates one embodiment of the hardware components of a system that performs the present invention.
- a video content delivery system 100 includes an internet protocol television (IPTV) server 110, managed network 120, video content server 130, internet 140, video content client device 150, and a user 160.
- IPTV internet protocol television
- the IPTV server 110 and video content server 130 deliver multimedia content to the video content client device 150 via the managed network 120 and internet 140, respectively.
- the video content server 130 includes services such as YouTube, Netflix, and Hulu, and OTT services.
- the video content client device 150 includes a set-top box, mobile device, and personal computer client device.
- the managed network 120 and internet 140 shown in FIG. 1, in one embodiment, are communication networks.
- the present invention also contemplates the use of comparable network architectures including a LAN, a Personal Area Network (PAN) such as a Bluetooth network, a wireless LAN (e.g., a Wireless- Fidelity (Wi-Fi) network), peer-to-peer overlay network, and a Virtual Private Network (VPN).
- PAN Personal Area Network
- Wi-Fi Wireless- Fidelity
- VPN Virtual Private Network
- the system also contemplates network architectures and protocols such as Ethernet, Internet Protocol, and Transmission Control Protocol .
- the multimedia content delivered in the video content delivery system 100 shown in FIG. 1 includes, but is not limited to, transport mechanisms such as HTTP.
- transport mechanisms such as HTTP.
- One advantage of the HTTP transport mechanism is avoidance of firewall issues that associated with other transport mechanisms.
- the multimedia content is delivered to the video content client device 150 as a single bitrate stream.
- One disadvantage associated with HTTP is streaming quality depends on the quality of the IP connection. Since content delivery may undergo stalling due to bandwidth fluctuations, it is difficult to use a single bitrate stream for live broadcasts and video- on-demand (VOD) delivery.
- VOD video- on-demand
- various other embodiments, including adaptive streaming, live streaming, and scalable coding are available at the IPTV server 110 and video content server 130 to deliver multiple bitrate versions of the multimedia content.
- the video content client device 150 selects an appropriate version for decoding and rendering depending on the managed network 120, internet 140, and video content client device 150 resources that are available. Technologies that currently facilitate this selection include Internet Engineering Task Force (IETF)/ Apple HTTP-Live-Streaming (HLS), Microsoft Silverlight Smooth Streaming, Google WebM, MPEG DASH, and Flash.
- IETF Internet Engineering Task Force
- HLS Apple HTTP-Live-Streaming
- Microsoft Silverlight Smooth Streaming Google WebM
- MPEG DASH MPEG DASH
- Flash Flash
- HLS works with segmented TS-based video streams or files.
- the chosen container for HLS is an MPEG transport stream (TS) encapsulating MPEG-4 AVC (H.264) for video and AAC for audio.
- TS MPEG transport stream
- the multimedia content is typically chunked and made available to the video content client device 150 as relatively small files, typically on the order of 5 to 30 seconds. Some use cases may utilize larger chunks.
- the chunks from different bitrate versions streams can be synchronized to allow for switching between bitrate versions based on the throughput of the managed network 120 and internet 140 and video content client device 150 processing capabilities.
- An index file points to the chunk files that make-up the multimedia content. Each chunk is typically encoded and encrypted independently.
- Scalable coding schemes such as scalable-video coding (SVC) or JPEG2000 or Motion JPEG2000 follow the paradigm of "Encode once, decode in many ways".
- the bitstream is scalable in multi-dimensions or characteristics, e. g. , resolution (size), bitrate (quality), frame-rate, position, and color-component.
- resolution size
- bitrate quality
- frame-rate position
- color-component color-component
- FIG. 2 is a block diagram that illustrates, in detail, one embodiment of the hardware components shown in FIG. 1.
- FIG. 2 illustrates the hardware components and software comprising the IPTV server 110, video content server 130, and video content client device 150 shown in FIG. 1.
- the IPTV server 110 in one embodiment, is a general-purpose computing device that performs the present invention.
- a bus 210 is a communication medium that connects a processor 211, data storage device 212 (such as a Serial ATA (SATA) hard disk drive, optical drive, Small Computer System Interface (SCSI) disk, flash memory, storage located remotely in the internet cloud, or the like), communication interface 213, and memory 214 (such as Random Access Memory (RAM), Dynamic RAM (DRAM), non-volatile computer memory, flash memory, or the like).
- the communication interface 213 connects the IPTV server 110 to the managed network 120, and enables delivery of IPTV content via the managed network 120.
- the processor 211 performs the disclosed methods by executing the sequences of operational instructions that comprise each computer program resident in, or operative on, the memory 214.
- the memory 214 may include operating system, administrative, and database programs that support the programs disclosed in this application.
- the configuration of the memory 214 of the IPTV server 110 includes multimedia content 215 that enables performance of the methods of the present invention disclosed in detail in FIG. 3.
- the processor 211 performs the disclosed methods, it stores intermediate results in the memory 214 or data storage device 212.
- the memory 214 may swap programs, or portions thereof, in and out of the memory 214 as needed, and thus may include fewer than all of these programs at any one time.
- the video content server 130 in one embodiment, is a general-purpose computing device that performs the present invention.
- a bus 230 is a communication medium that connects a processor 231, data storage device 232 (such as a Serial ATA (SATA) hard disk drive, optical drive, Small Computer System Interface (SCSI) disk, flash memory, storage located remotely in the internet cloud, or the like),
- SATA Serial ATA
- SCSI Small Computer System Interface
- flash memory storage located remotely in the internet cloud, or the like
- the communication interface 233 connects the video content server 130 to the internet 140, and enables delivery of video content via the internet 140.
- RAM Random Access Memory
- DRAM Dynamic RAM
- non-volatile computer memory flash memory, or the like.
- the communication interface 233 connects the video content server 130 to the internet 140, and enables delivery of video content via the internet 140.
- the processor 231 performs the disclosed methods by executing the sequences of operational instructions that comprise each computer program resident in, or operative on, the memory 234.
- the configuration of the memory 234 of the video content server 130 includes multimedia content 235 that enables performance of the methods of the present invention disclosed in detail in FIG. 3.
- the memory 234 may swap programs, or portions thereof, in and out of the memory 234 as needed, and thus may include fewer than all of these programs at any one time.
- the video content client device 150 is a general-purpose computing device that performs the present invention.
- a bus 250 is a communication medium that connects a processor 251, data storage device 252 (such as a Serial ATA (SATA) hard disk drive, optical drive, Small Computer System Interface (SCSI) disk, flash memory, storage located remotely in the internet cloud, or the like),
- SATA Serial ATA
- SCSI Small Computer System Interface
- flash memory storage located remotely in the internet cloud, or the like
- the communication interface 253 connects the video content client device 150 to the managed network 120 and the internet 140.
- the user interface 254 connects the video content client device 150 to a user 160.
- the user interface 254 is a radio-frequency (RF) remote controller, and a keypad.
- the implementation of the present invention on the video content client device 150 is an application- specific integrated circuit (ASIC).
- the processor 251 performs the disclosed methods by executing the sequences of operational instructions that comprise each computer program resident in, or operative on, the memory 255.
- the memory 255 may include operating system, administrative, and database programs that support the programs disclosed in this application.
- the configuration of the memory 255 of the video content client device 150 includes an intelligent buffering program 256 and learning parameters 257 that perform the methods of the present invention disclosed in detail in FIG. 5, FIG. 6, FIG. 7, FIG. 8, and FIG. 9.
- the processor 251 When the processor 251 performs the disclosed methods, it stores intermediate results in the memory 255 or data storage device 252.
- the memory 255 may swap programs, or portions thereof, in and out of the memory 255 as needed, and thus may include fewer than all of these programs at any one time.
- Efficient implementations of multimedia content players will pre-buffer multimedia content streams so that playback from a point within the pre-buffered portion begins with minimal lag. Such pre-buffering is useful for reducing playback latencies especially for operations such as seek or random-access operations in the multimedia content stream, and fast-playback modes (e.g. , playback at two-times normal speed).
- the multimedia content stream includes a number of frames.
- the "key-frames" are the frames that can be independently decoded, without reference to other frames (e.g., intra frames in MPEG-4 Visual, and IDR frames in H.264). The key frames are important when implementing random-access and trick-play operations.
- FIG. 3 is a schematic diagram that illustrates one embodiment of a prior art single segment multimedia content pre-buffering method.
- the prior art implements pre-buffering of a single segment from the playout position onward as shown in FIG. 3.
- the shaded region indicates the accumulation of data in a buffer over a period of time. As time progresses, the amount of data buffered may increase until a desired amount is reached.
- An example of such pre-buffering can be found in a video content client device 150 that views a video on an internet 140 video sites such as YouTube, where the entire media stream is progressively pre-buffered. When the video content client device 150 is an embedded device with limited resources, it cannot perform pre- buffering of the entire clip length.
- FIG. 4 is a schematic diagram that illustrates one embodiment of a prior art multiple segment multimedia content pre-buffering method.
- segmented pre- buffering the buffered segments are discontinuous, where each buffered segment corresponds to the beginning of a segment in the multimedia content stream.
- a multimedia content player plays the multimedia content stream from the playout position shown in FIG. 4.
- the shaded regions indicate the accumulation of data in a buffer associated with the playout position and each possible seek position
- FIG. 5 is a schematic diagram that illustrates a multiple segment multimedia content pre -buffering method according to one embodiment of the present invention.
- the intelligent selection of pre-buffering segments can be based on several considerations that improve upon the simple prior art strategy of pre- buffering equal segment lengths starting from each key frame, or from each selected key frame. Weighting based on access-likelihood can improve the benefits of pre- buffering.
- the size of the buffer is the amount of buffered content
- the strategy shown in FIG. 5 can be adapted further as a learning engine that collects how a user accesses the stream over a period of time to predict how the user will likely access the stream in the future.
- some users may typically playout content linearly.
- Another user may regularly randomly access the content in a forward direction, to look-ahead in the content.
- Yet another user may regularly replay parts of content that have already been played or skimmed.
- the present invention maintains a historical log of access to the stream for each user-profile to support the learning engine.
- the segmented pre-buffering shown in FIG. 5 can also be extended to adaptive bit-streams and scalable streams, wherein multiple versions of the same content that vary a characteristic of the content (e.g., bitrates), are made available to the video content client device 150 as needed.
- Scalable streams typically do not store multiple encoded versions as separate streams, enhancement versions are deltas (i.e., differential components) over a base version.
- each encoded version of a scalable stream is reconstructed from encoded components of the stream, where each encoded component varies a characteristic of the stream.
- FIG. 6 is a network bandwidth chart that illustrates an adaptive chunked multimedia content pre -buffering method according to one embodiment of the present invention.
- Each row in the chart (STREAM 1, STREAM 2, STREAM 3, and
- STREAM 4 illustrates an adaptive stream at a given bitrate, where each stream comprises eight chunks (i, i + 1, i + 2, i + 3, i + 4, i + 5, i + 6, and i + 7) that are available over a given period of time.
- STREAM 1 has the lowest bitrate
- STREAM 2 has the second lowest bitrate
- STREAM 3 has the third lowest bitrate
- STREAM 4 has the highest bitrate.
- the network bandwidth chart also shows the change in the available network bandwidth 610 over time. The system examines the available network bandwidth 610 and selects the chuck for that time period from the appropriate stream. As shown in FIG. 6, since the available network bandwidth 610 is high at time i, the system selects the chuck 620 from STREAM 4.
- the system selects the chuck from STREAM 3.
- the system selects the chuck from STREAM 2.
- the system selects the chuck from STREAM 1.
- the system selects the chuck from STREAM 2.
- the system selects the chuck from STREAM 3.
- the system selects the chuck from STREAM 4.
- FIG. 7 is a schematic diagram that illustrates a successive selection pre- buffering method based on bitrate according to one embodiment of the present invention.
- pre-buffering of adaptive streams is based on a multilevel or successive approximation strategy in which selection is based on bitrate.
- the stream with the lowest bitrate (STREAM 1) is buffered most frequently
- the stream with the second lowest bitrate (STREAM 2) is buffered less frequently
- the stream with the third lowest bitrate (STREAM 3) is buffered even less frequently
- the stream with the highest bitrate (STREAM 4) is buffered least frequently.
- STREAM 1 is buffered at every key frame (KF1, KF2, KF3, KF4, KF5, KF6, KF7, KF8, and KF9)
- STREAM 2 is buffered at every other key frame (KF1, KF3, KF5, KF7, and KF9)
- STREAM 3 is buffered at every fourth key frame (KF1, KF4, and KF9)
- STREAM 4 is buffered at every eighth key frame (KF1 and KF9). Since low bitrate streams consume less buffer space than high bitrate streams, buffering the low bitrate streams more frequently is not an overly excessive use of buffer space.
- the target bitrate chunk i.e., the bitrate associated with the available network bandwidth 610
- the target bitrate version of the stream is presented. If the target bitrate chunk is not available for that seek point, the user 160 can quickly be presented the next highest bitrate version of a chunk starting from the seek point, even as the target bitrate chunk (i.e., the bitrate associated with the available network bandwidth 610) starts in parallel with getting buffered from the seek point and immediately successive segments beyond.
- the user may be presented with a quality that is lower than what the instantaneous bandwidth affords.
- the pre -buffering of the target bitrate version is kept ready. This trade-off is to minimize the latency. In the worst case, the lowest bitrate version is always available, if buffered from every seek point, it could be argued that if the instantaneous network bandwidth is high enough, the latency in presentation of the target bitrate chunk may be acceptable perceptually. Hence, this approach (to present a quality that is lower than what the instantaneous bandwidth affords, in the interest of latency) could be conditionally gated by a threshold which decides if the available network bandwidth would induce latencies in presentation and hence requires presentation of pre-buffered lower bitrate versions.
- the threshold depends on whether the latency induced by the available network bandwidth (and presentation-unit size) is perceptually objectionable.
- an adaptive streaming client starts from the lowest bitrate version of adaptive stream to minimize the latency incurred when starting the playout. Also, so that sudden changes in quality do not cause discontinuities in the viewed content, this embodiment progresses gradually through all the interim bitrate versions, until the bitrate afforded by the current network bandwidth. If network bandwidth drops, the strategy typically is different in that the bitrate version closest to, and lesser than the network bandwidth, is immediately transitioned to, without stepping down gradually. Additional considerations in buffering can optimize the latency incurred in playing out from a position that has no pre-buffered data.
- FIG. 8 is a schematic diagram that illustrates a successive selection pre- buffering method based on priority according to one embodiment of the present invention.
- pre-buffering of adaptive streams is based on according a higher priority to the current stream being played. Assuming that the available network bandwidth 610 has a higher probability to remain constant or only vary gradually, rather than exhibiting instantaneously sudden changes, this strategy buffers more frequently for the current stream being played, and less frequently for other bitrate streams.
- the method buffers segments that start from every key frame of the bitrate version of stream currently being played. Bitrates that are "farther away" from the current played-out- stream's bitrate can be buffered less frequently in a successive manner. As shown in FIG.
- the current playout position 810 is at key frame KF5 in STREAM 2. If the available network bandwidth 610 remains constant, it is more likely that the user seeks within STREAM 2, hence STREAM 2 is buffered with more frequently by buffering at the start of every key frame (KF1, KF2, KF3, KF4, KF5, KF6, KF7, and KF8).
- the bitrate streams proximate to the bitrate of the current stream are STREAM 1 and STREAM 3, hence STREAM 1 and STREAM 3 are buffered less frequently than STREAM 2.
- STREAM 8 shows a dyadic sub-sampling whereby every alternate key frame of the key frames buffered for STREAM 2 are buffered for STREAM 1 and STREAM 3 (KFl , KF3, KF5, KF7, and KF9). Since the bitrate for STREAM 4 is farthest from the bitrate of the stream currently being played, STREAM 4 is buffered least frequently (KFl , KF5, and KF9).
- This strategy illustrated in FIG. 8 can also be applied in the domain of resolution. Resolutions (sizes) which are "farther away" from the resolution of the stream currently being current played can be buffered less frequently in a successive manner.
- a mobile device that consumes 640 x 480 resolution media is unlikely or less likely to need segments of a high definition (HD) stream.
- Scalable coding schemes such as scalable-video coding (SVC, built upon H.264 as its base-layer), as well as JPEG2000 or Motion JPEG2000 follow the paradigm of "encode once, decode in many ways".
- the bitstream is scalable in multi- dimensions or characteristics (e.g., resolution (size), bitrate (quality), frame -rate, position, and color-component).
- resolution size
- bitrate quality
- frame -rate position
- color-component color-component
- Scalable coding is a forward-looking technology that may not be widely deployed at present but is envisioned to find wide prevalence.
- each bitrate version of the content constitutes one encoded component.
- each encoded component comprises of one or more of a specific resolution (size), a specific quality layer, a specific frame -rate, a specific position, and a specific color- component.
- the strategies described above and illustrated in FIG. 6, FIG. 7, and FIG. 8, are applicable to scalable schemes.
- the multi-level paradigm described for adaptive streaming can also be applied to scalable streams.
- the segments of the current bitrate or the current resolution can be given more weight for buffering, in accordance to the earlier figures depicting a distance weighted multi-level buffering.
- FIG. 9 is a flow diagram that illustrates a successive selection pre-buffering method based on a learning model according to one embodiment of the present invention.
- the stream selection can also be based on a learning or heuristic model 900.
- the buffering can be determined based on intelligently learning, and adapting, to one or more objective learning parameters 910, including user-profile parameters 911, media category 912, end-user device profile 913, acceptable latency of playout from a start of the content stream or one of the seek positions, and network parameters 914.
- This approach typically includes an offline learning phase to train the model, followed by an online field-deployment phase. While the previously described strategies can be realized in low-complexity, an intelligent learning approach involves relatively moderate to high complexity (based on the training algorithm) for the learning phase followed by low complexity for the field-deployment phase.
- the user-profile parameters 911 detect patterns in how a user 160 accesses the content that they view. Some users may prefer to view content linearly from start to finish. Other users may prefer to quickly sample the content randomly or "channel surf. Still other users may prefer to playback portions of the content that they viewed earlier.
- the user-profile parameters 911 may include time or byte offsets of each of the user's access to the content, or a log of all the trick plays (e.g., fast- forward, reverse, pause, etc.) that the user requested.
- the media category 912 detect patterns in the category of the content that a user 160 accesses. If a stream is a sporting event, such as a cricket match, the stream would have a number of replays associated with significant portions of the sporting event, such as a boundary, catch, and clean bowled.
- the media category 912 may include sporting event clips having highlight portions, movies, and news.
- the end-user device profile 913 detect characteristics in the end-user device that affect the content that a user 160 accesses. Since each end-user device has a target resolution and bitrate, the buffering scheme gives more weight to the preferred resolution and bitrate. For example, when the end-user device is a mobile device, there is no need to buffer a high-definition (HD) stream.
- the end-user device profile 913 may include an HD display, mobile device, or personal computer.
- the network parameters 914 detect characteristics in the network performance that affect the content that a user 160 accesses. Since the video content client device 150 can switch to a different bitrate version of a stream based on the available network bandwidth 610, a regression analysis of network bandwidth data that includes past and present usage may be useful to predict future changes in network bandwidth.
- the network parameters 914 may include time-series network bandwidth (i.e., data samples of network bandwidth variation over time).
- the learning model 900 shown in FIG. 9 inputs the learning parameters 910 to a preprocessing 920 module that performs sampling, dimensionality reduction by principal component analysis, and other preprocessing.
- the output of the preprocessing 920 module that performs sampling, dimensionality reduction by principal component analysis, and other preprocessing.
- preprocessing 920 module is input to a predictive classification and modeling 930 module that includes learning by algorithms such as decision trees,
- Bayesian/statistical classification neural networks, fuzzy logic, and genetic algorithms.
- the output of the predictive classification and modeling 930 are the weights for segments associated with positions and multiple-version streams 940.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
A method and computing device for intelligently pre-buffering at access points in an adaptive or scalable stream to optimize trick-play support. The method receives a multimedia content stream from a multimedia content server as a series of segments, each segment including a key frame and corresponding to a predicted seek position in the multimedia content stream, where the multimedia content server delivers at least two versions of each segment, each version reconstructed from at least one encoded component of the multimedia content stream, the versions varying a characteristic of the multimedia content stream. The method determines a likelihood of receiving a seek request from a user to move from a current playout position to one of the predicted seek positions, and determines a size of a buffer for each version of each segment in the multimedia content stream based on the likelihood of receiving the seek request.
Description
INTELLIGENT BUFFERING OF MEDIA STREAMS
DELIVERED OVER INTERNET
BACKGROUND
[0001] The term over-the-top (OTT) service refers to a service from a third-party that a user of a network accesses via the network. These OTT services ride on top of the services that the user gets from the network operator, and have no business or technology affiliation with the network operator. For example, long distance telephone service is an OTT service for a user who obtains their long distance telephone service from a company that offers the long distance telephone service over a telephone network operated by another telephone company. Similarly, internet search engines and social networks are OTT services that provide value to the users of a network, but that are not owned or managed by the traditional network carriers.
[0002] Adaptive streaming is a process that adjusts the quality of a video stream based on changing network conditions to ensure the best possible viewing experience. Internet connection speeds vary widely, and the speed of each type of connection also varies depending on a wide variety of conditions. If a user connects to an Internet Service Provider (ISP) at 56 Kbps, that does not mean that 56 Kbps is available at all times. Bandwidth can vary, meaning that a 56 Kbps connection may decrease or increase based on current network conditions, causing video quality to fluctuate as well. Adaptive streaming adjusts the bitrate of the video to adapt to changing network conditions. Adaptive streaming includes hypertext transfer protocol (HTTP) live streaming (HLS), Smooth Streaming, WebM, and Motion Pictures Experts Group (MPEG) Dynamic Adaptive Streaming over HTTP (DASH). Adaptive streaming has
many advantages for on-demand video playback and live events because it can reduce bandwidth expense and improve user experience by optimizing video quality based on network conditions.
[0003] In Scalable Video Coding (SVC), as well as JPEG2000 and Motion
JPEG2000, the bitstream is scalable in multi-dimensions such as resolution (size), bitrate (quality), position, color-component and frame -rate (temporal scalability). As opposed to adaptive streaming, there is only one bitstream in a scalable coding scheme from which the right portions of interest can be extracted and processed further. In video content delivery systems, such as those that utilize adaptive streaming, and scalable coding, it is important to pre -buffer the media stream in such a way that a rich-media experience is provided to the user. The pre-buffering will allow the user to experience smooth trick-plays, granular random access, and use of the most suitable version of the bit stream for the network bandwidth, while also optimizing the buffer usage.
[0004] There is a need for a video content client device that intelligently pre-buffers at access points in an adaptive or scalable stream to optimize trick-play support. The presently disclosed invention satisfies this demand.
SUMMARY
[0005] Aspects of the present invention provide a method and computing device for intelligently pre-buffering at access points in an adaptive or scalable stream to optimize trick-play support. The method receives a multimedia content stream from a multimedia content server as a series of segments, each segment including a key frame and corresponding to a predicted seek position in the multimedia content
stream, where the multimedia content server delivers at least two versions of each segment, each version reconstructed from at least one encoded component of the multimedia content stream, the versions varying a characteristic of the multimedia content stream. The method determines a likelihood of receiving a seek request from a user to move from a current playout position to one of the predicted seek positions, and determines a size of a buffer for each version of each segment in the multimedia content stream based on the likelihood of receiving the seek request.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] FIG. 1 is a network diagram that illustrates one embodiment of the hardware components of a system that performs the present invention.
[0007] FIG. 2 is a block diagram that illustrates, in detail, one embodiment of the hardware components shown in FIG. 1.
[0008] FIG. 3 is a schematic diagram that illustrates one embodiment of a prior art single segment multimedia content pre-buffering method.
[0009] FIG. 4 is a schematic diagram that illustrates one embodiment of a prior art multiple segment multimedia content pre-buffering method.
[0010] FIG. 5 is a schematic diagram that illustrates a multiple segment multimedia content pre -buffering method according to one embodiment of the present invention.
[0011] FIG. 6 is a network bandwidth chart that illustrates an adaptive chunked multimedia content pre -buffering method according to one embodiment of the present invention.
[0012] FIG. 7 is a schematic diagram that illustrates a successive selection pre- buffering method based on bitrate according to one embodiment of the present invention.
[0013] FIG. 8 is a schematic diagram that illustrates a successive selection pre- buffering method based on priority according to one embodiment of the present invention.
[0014] FIG. 9 is a flow diagram that illustrates a successive selection pre-buffering method based on a learning model according to one embodiment of the present invention.
DETAILED DESCRIPTION
[0015] FIG. 1 is a network diagram that illustrates one embodiment of the hardware components of a system that performs the present invention. A video content delivery system 100 includes an internet protocol television (IPTV) server 110, managed network 120, video content server 130, internet 140, video content client device 150, and a user 160. The IPTV server 110 and video content server 130 deliver multimedia content to the video content client device 150 via the managed network 120 and internet 140, respectively. In various embodiments, the video content server 130 includes services such as YouTube, Netflix, and Hulu, and OTT services. In various embodiments, the video content client device 150 includes a set-top box, mobile device, and personal computer client device. The video content delivery system 100 shown in FIG. 1 may include any number of interconnected IPTV servers 110, managed networks 120, video content servers 130, video content client devices 150, and users 160.
[0016] The managed network 120 and internet 140 shown in FIG. 1, in one embodiment, are communication networks. The present invention also contemplates the use of comparable network architectures including a LAN, a Personal Area Network (PAN) such as a Bluetooth network, a wireless LAN (e.g., a Wireless- Fidelity (Wi-Fi) network), peer-to-peer overlay network, and a Virtual Private Network (VPN). The system also contemplates network architectures and protocols such as Ethernet, Internet Protocol, and Transmission Control Protocol .
[0017] The multimedia content delivered in the video content delivery system 100 shown in FIG. 1 includes, but is not limited to, transport mechanisms such as HTTP. One advantage of the HTTP transport mechanism is avoidance of firewall issues that associated with other transport mechanisms. In one embodiment, the multimedia content is delivered to the video content client device 150 as a single bitrate stream. One disadvantage associated with HTTP is streaming quality depends on the quality of the IP connection. Since content delivery may undergo stalling due to bandwidth fluctuations, it is difficult to use a single bitrate stream for live broadcasts and video- on-demand (VOD) delivery. Thus, various other embodiments, including adaptive streaming, live streaming, and scalable coding are available at the IPTV server 110 and video content server 130 to deliver multiple bitrate versions of the multimedia content.
[0018] When multiple bitrate versions, or multiple resolution versions, of the multimedia content are available, the video content client device 150 selects an appropriate version for decoding and rendering depending on the managed network 120, internet 140, and video content client device 150 resources that are available.
Technologies that currently facilitate this selection include Internet Engineering Task Force (IETF)/ Apple HTTP-Live-Streaming (HLS), Microsoft Silverlight Smooth Streaming, Google WebM, MPEG DASH, and Flash. For instance, HLS works with segmented TS-based video streams or files. Thus, the chosen container for HLS is an MPEG transport stream (TS) encapsulating MPEG-4 AVC (H.264) for video and AAC for audio. In each of these technologies, the multimedia content is typically chunked and made available to the video content client device 150 as relatively small files, typically on the order of 5 to 30 seconds. Some use cases may utilize larger chunks. The chunks from different bitrate versions streams can be synchronized to allow for switching between bitrate versions based on the throughput of the managed network 120 and internet 140 and video content client device 150 processing capabilities. An index file points to the chunk files that make-up the multimedia content. Each chunk is typically encoded and encrypted independently.
[0019] Scalable coding schemes such as scalable-video coding (SVC) or JPEG2000 or Motion JPEG2000 follow the paradigm of "Encode once, decode in many ways". The bitstream is scalable in multi-dimensions or characteristics, e. g. , resolution (size), bitrate (quality), frame-rate, position, and color-component. As opposed to adaptive streaming, there is only one bitstream from which the right portions of interest can be extracted and processed further. This selection of portions of interest (targeted for specific use cases) can occur during encoding, decoding, or during transmission at a media-gateway in the managed network 120 or internet 140, or at the sending end.
[0020] FIG. 2 is a block diagram that illustrates, in detail, one embodiment of the
hardware components shown in FIG. 1. In particular, FIG. 2 illustrates the hardware components and software comprising the IPTV server 110, video content server 130, and video content client device 150 shown in FIG. 1.
[0021] The IPTV server 110, in one embodiment, is a general-purpose computing device that performs the present invention. A bus 210 is a communication medium that connects a processor 211, data storage device 212 (such as a Serial ATA (SATA) hard disk drive, optical drive, Small Computer System Interface (SCSI) disk, flash memory, storage located remotely in the internet cloud, or the like), communication interface 213, and memory 214 (such as Random Access Memory (RAM), Dynamic RAM (DRAM), non-volatile computer memory, flash memory, or the like). The communication interface 213 connects the IPTV server 110 to the managed network 120, and enables delivery of IPTV content via the managed network 120.
[0022] The processor 211 performs the disclosed methods by executing the sequences of operational instructions that comprise each computer program resident in, or operative on, the memory 214. The reader should understand that the memory 214 may include operating system, administrative, and database programs that support the programs disclosed in this application. In one embodiment, the configuration of the memory 214 of the IPTV server 110 includes multimedia content 215 that enables performance of the methods of the present invention disclosed in detail in FIG. 3. When the processor 211 performs the disclosed methods, it stores intermediate results in the memory 214 or data storage device 212. In another embodiment, the memory 214 may swap programs, or portions thereof, in and out of the memory 214 as needed, and thus may include fewer than all of these programs at any one time.
[0023] The video content server 130, in one embodiment, is a general-purpose computing device that performs the present invention. A bus 230 is a communication medium that connects a processor 231, data storage device 232 (such as a Serial ATA (SATA) hard disk drive, optical drive, Small Computer System Interface (SCSI) disk, flash memory, storage located remotely in the internet cloud, or the like),
communication interface 233, and memory 234 (such as Random Access Memory (RAM), Dynamic RAM (DRAM), non-volatile computer memory, flash memory, or the like). The communication interface 233 connects the video content server 130 to the internet 140, and enables delivery of video content via the internet 140.
[0024] The processor 231 performs the disclosed methods by executing the sequences of operational instructions that comprise each computer program resident in, or operative on, the memory 234. The reader should understand that the memory 234 may include operating system, administrative, and database programs that support the programs disclosed in this application. In one embodiment, the configuration of the memory 234 of the video content server 130 includes multimedia content 235 that enables performance of the methods of the present invention disclosed in detail in FIG. 3. When the processor 231 performs the disclosed methods, it stores
intermediate results in the memory 234 or data storage device 232. In another embodiment, the memory 234 may swap programs, or portions thereof, in and out of the memory 234 as needed, and thus may include fewer than all of these programs at any one time.
[0025] The video content client device 150, in one embodiment, is a general-purpose computing device that performs the present invention. A bus 250 is a communication
medium that connects a processor 251, data storage device 252 (such as a Serial ATA (SATA) hard disk drive, optical drive, Small Computer System Interface (SCSI) disk, flash memory, storage located remotely in the internet cloud, or the like),
communication interface 253, user interface 254, and memory 255 (such as Random Access Memory (RAM), Dynamic RAM (DRAM), non-volatile computer memory, flash memory, or the like). The communication interface 253 connects the video content client device 150 to the managed network 120 and the internet 140. The user interface 254 connects the video content client device 150 to a user 160. In various embodiments, the user interface 254 is a radio-frequency (RF) remote controller, and a keypad. In one embodiment, the implementation of the present invention on the video content client device 150 is an application- specific integrated circuit (ASIC).
[0026] The processor 251 performs the disclosed methods by executing the sequences of operational instructions that comprise each computer program resident in, or operative on, the memory 255. The reader should understand that the memory 255 may include operating system, administrative, and database programs that support the programs disclosed in this application. In one embodiment, the configuration of the memory 255 of the video content client device 150 includes an intelligent buffering program 256 and learning parameters 257 that perform the methods of the present invention disclosed in detail in FIG. 5, FIG. 6, FIG. 7, FIG. 8, and FIG. 9. When the processor 251 performs the disclosed methods, it stores intermediate results in the memory 255 or data storage device 252. In another embodiment, the memory 255 may swap programs, or portions thereof, in and out of the memory 255 as needed, and thus may include fewer than all of these programs at any one time.
[0027] Efficient implementations of multimedia content players will pre-buffer multimedia content streams so that playback from a point within the pre-buffered portion begins with minimal lag. Such pre-buffering is useful for reducing playback latencies especially for operations such as seek or random-access operations in the multimedia content stream, and fast-playback modes (e.g. , playback at two-times normal speed). The multimedia content stream includes a number of frames. The "key-frames" are the frames that can be independently decoded, without reference to other frames (e.g., intra frames in MPEG-4 Visual, and IDR frames in H.264). The key frames are important when implementing random-access and trick-play operations.
[0028] FIG. 3 is a schematic diagram that illustrates one embodiment of a prior art single segment multimedia content pre-buffering method. The prior art implements pre-buffering of a single segment from the playout position onward as shown in FIG. 3. The shaded region indicates the accumulation of data in a buffer over a period of time. As time progresses, the amount of data buffered may increase until a desired amount is reached. An example of such pre-buffering can be found in a video content client device 150 that views a video on an internet 140 video sites such as YouTube, where the entire media stream is progressively pre-buffered. When the video content client device 150 is an embedded device with limited resources, it cannot perform pre- buffering of the entire clip length.
[0029] FIG. 4 is a schematic diagram that illustrates one embodiment of a prior art multiple segment multimedia content pre-buffering method. In segmented pre- buffering, the buffered segments are discontinuous, where each buffered segment
corresponds to the beginning of a segment in the multimedia content stream. A multimedia content player plays the multimedia content stream from the playout position shown in FIG. 4. The shaded regions indicate the accumulation of data in a buffer associated with the playout position and each possible seek position
(SEEK - 2, SEEK - 1, SEEK + 1, and SEEK + 2). In such a prior art system, if a user 160 seeks to a position in the multimedia content stream that does not align with a segment boundary, the system has to flush the currently pre-buffered data and begin the pre-buffering process. The present invention builds upon the concept of segmented buffering as shown in FIG. 4 by aligning each buffer to start at a keyframe in the multimedia content stream. This will enable a user 160 to seek to a point far-removed from the current playout position.
[0030] FIG. 5 is a schematic diagram that illustrates a multiple segment multimedia content pre -buffering method according to one embodiment of the present invention. As shown in FIG. 5, the intelligent selection of pre-buffering segments can be based on several considerations that improve upon the simple prior art strategy of pre- buffering equal segment lengths starting from each key frame, or from each selected key frame. Weighting based on access-likelihood can improve the benefits of pre- buffering. As a simple example, if the size of the buffer is the amount of buffered content, it would be expedient to pre-buffer more bytes (accounting for larger time- units worth of data) in the segment that starts out from the current playout position, and fewer bytes in segments far-removed from the current playout position (i.e., the time duration between the current playout position and the seek position). This is based on the usage pattern assumption that random-access seeks or trick-plays would be more probable in regions closer to the current playout position.
[0031] The strategy shown in FIG. 5 can be adapted further as a learning engine that collects how a user accesses the stream over a period of time to predict how the user will likely access the stream in the future. To illustrate this, some users may typically playout content linearly. Another user may regularly randomly access the content in a forward direction, to look-ahead in the content. Yet another user may regularly replay parts of content that have already been played or skimmed. The present invention maintains a historical log of access to the stream for each user-profile to support the learning engine.
[0032] The segmented pre-buffering shown in FIG. 5 can also be extended to adaptive bit-streams and scalable streams, wherein multiple versions of the same content that vary a characteristic of the content (e.g., bitrates), are made available to the video content client device 150 as needed. Scalable streams typically do not store multiple encoded versions as separate streams, enhancement versions are deltas (i.e., differential components) over a base version. Thus, each encoded version of a scalable stream is reconstructed from encoded components of the stream, where each encoded component varies a characteristic of the stream.
[0033] FIG. 6 is a network bandwidth chart that illustrates an adaptive chunked multimedia content pre -buffering method according to one embodiment of the present invention. Each row in the chart (STREAM 1, STREAM 2, STREAM 3, and
STREAM 4) illustrates an adaptive stream at a given bitrate, where each stream comprises eight chunks (i, i + 1, i + 2, i + 3, i + 4, i + 5, i + 6, and i + 7) that are available over a given period of time. STREAM 1 has the lowest bitrate, STREAM 2 has the second lowest bitrate, STREAM 3 has the third lowest bitrate, and
STREAM 4 has the highest bitrate. The network bandwidth chart also shows the change in the available network bandwidth 610 over time. The system examines the available network bandwidth 610 and selects the chuck for that time period from the appropriate stream. As shown in FIG. 6, since the available network bandwidth 610 is high at time i, the system selects the chuck 620 from STREAM 4. At time i + 1 and i + 2, since the available network bandwidth 610 has dropped, the system selects the chuck from STREAM 3. At time i + 3, since the available network bandwidth 610 has dropped, the system selects the chuck from STREAM 2. At time i + 4, since the available network bandwidth 610 has dropped, the system selects the chuck from STREAM 1. At time i + 5, since the available network bandwidth 610 has increased, the system selects the chuck from STREAM 2. At time i + 6, since the available network bandwidth 610 has increased, the system selects the chuck from STREAM 3. At time i + 7, since the available network bandwidth 610 has increased, the system selects the chuck from STREAM 4.
[0034] FIG. 7 is a schematic diagram that illustrates a successive selection pre- buffering method based on bitrate according to one embodiment of the present invention. In one embodiment, pre-buffering of adaptive streams is based on a multilevel or successive approximation strategy in which selection is based on bitrate. In this strategy, the stream with the lowest bitrate (STREAM 1) is buffered most frequently, the stream with the second lowest bitrate (STREAM 2) is buffered less frequently, the stream with the third lowest bitrate (STREAM 3) is buffered even less frequently, and the stream with the highest bitrate (STREAM 4) is buffered least frequently. In one embodiment, STREAM 1 is buffered at every key frame (KF1, KF2, KF3, KF4, KF5, KF6, KF7, KF8, and KF9), STREAM 2 is buffered at every
other key frame (KF1, KF3, KF5, KF7, and KF9), STREAM 3 is buffered at every fourth key frame (KF1, KF4, and KF9), and STREAM 4 is buffered at every eighth key frame (KF1 and KF9). Since low bitrate streams consume less buffer space than high bitrate streams, buffering the low bitrate streams more frequently is not an overly excessive use of buffer space. Also, when a user 160 randomly accesses the stream via a seek, if the target bitrate chunk (i.e., the bitrate associated with the available network bandwidth 610) at that seek point is already pre-buffered and available, the target bitrate version of the stream is presented. If the target bitrate chunk is not available for that seek point, the user 160 can quickly be presented the next highest bitrate version of a chunk starting from the seek point, even as the target bitrate chunk (i.e., the bitrate associated with the available network bandwidth 610) starts in parallel with getting buffered from the seek point and immediately successive segments beyond. In this approach, for the chunk duration, the user may be presented with a quality that is lower than what the instantaneous bandwidth affords. Beyond the chunk, the pre -buffering of the target bitrate version is kept ready. This trade-off is to minimize the latency. In the worst case, the lowest bitrate version is always available, if buffered from every seek point, it could be argued that if the instantaneous network bandwidth is high enough, the latency in presentation of the target bitrate chunk may be acceptable perceptually. Hence, this approach (to present a quality that is lower than what the instantaneous bandwidth affords, in the interest of latency) could be conditionally gated by a threshold which decides if the available network bandwidth would induce latencies in presentation and hence requires presentation of pre-buffered lower bitrate versions. The threshold depends on whether the latency induced by the available network bandwidth (and presentation-unit size) is perceptually
objectionable. In one embodiment, an adaptive streaming client starts from the lowest bitrate version of adaptive stream to minimize the latency incurred when starting the playout. Also, so that sudden changes in quality do not cause discontinuities in the viewed content, this embodiment progresses gradually through all the interim bitrate versions, until the bitrate afforded by the current network bandwidth. If network bandwidth drops, the strategy typically is different in that the bitrate version closest to, and lesser than the network bandwidth, is immediately transitioned to, without stepping down gradually. Additional considerations in buffering can optimize the latency incurred in playing out from a position that has no pre-buffered data.
[0035] FIG. 8 is a schematic diagram that illustrates a successive selection pre- buffering method based on priority according to one embodiment of the present invention. In one embodiment, pre-buffering of adaptive streams is based on according a higher priority to the current stream being played. Assuming that the available network bandwidth 610 has a higher probability to remain constant or only vary gradually, rather than exhibiting instantaneously sudden changes, this strategy buffers more frequently for the current stream being played, and less frequently for other bitrate streams. In one embodiment, the method buffers segments that start from every key frame of the bitrate version of stream currently being played. Bitrates that are "farther away" from the current played-out- stream's bitrate can be buffered less frequently in a successive manner. As shown in FIG. 8, the current playout position 810 is at key frame KF5 in STREAM 2. If the available network bandwidth 610 remains constant, it is more likely that the user seeks within STREAM 2, hence STREAM 2 is buffered with more frequently by buffering at the start of every key frame (KF1, KF2, KF3, KF4, KF5, KF6, KF7, and KF8). The bitrate streams
proximate to the bitrate of the current stream are STREAM 1 and STREAM 3, hence STREAM 1 and STREAM 3 are buffered less frequently than STREAM 2. FIG. 8 shows a dyadic sub-sampling whereby every alternate key frame of the key frames buffered for STREAM 2 are buffered for STREAM 1 and STREAM 3 (KFl , KF3, KF5, KF7, and KF9). Since the bitrate for STREAM 4 is farthest from the bitrate of the stream currently being played, STREAM 4 is buffered least frequently (KFl , KF5, and KF9).
[0036] This strategy illustrated in FIG. 8 can also be applied in the domain of resolution. Resolutions (sizes) which are "farther away" from the resolution of the stream currently being current played can be buffered less frequently in a successive manner. In one embodiment, a mobile device that consumes 640 x 480 resolution media is unlikely or less likely to need segments of a high definition (HD) stream.
[0037] Scalable coding schemes such as scalable-video coding (SVC, built upon H.264 as its base-layer), as well as JPEG2000 or Motion JPEG2000 follow the paradigm of "encode once, decode in many ways". The bitstream is scalable in multi- dimensions or characteristics (e.g., resolution (size), bitrate (quality), frame -rate, position, and color-component). As opposed to adaptive streaming, there is only one bitstream from which the right portions of interest can be extracted and processed further. This selection of portions of interest (targeted for specific use cases) can occur at decoder, or at a media-gateway in network, or at the sending end. Scalable coding is a forward-looking technology that may not be widely deployed at present but is envisioned to find wide prevalence. In one embodiment of adaptive streaming, each bitrate version of the content constitutes one encoded component. In another
embodiment of scalable technologies such as JPEG2000 as well as SVC, each encoded component comprises of one or more of a specific resolution (size), a specific quality layer, a specific frame -rate, a specific position, and a specific color- component.
[0038] The strategies described above and illustrated in FIG. 6, FIG. 7, and FIG. 8, are applicable to scalable schemes. The multi-level paradigm described for adaptive streaming can also be applied to scalable streams. In one embodiment, the segments of the current bitrate or the current resolution can be given more weight for buffering, in accordance to the earlier figures depicting a distance weighted multi-level buffering.
[0039] FIG. 9 is a flow diagram that illustrates a successive selection pre-buffering method based on a learning model according to one embodiment of the present invention. As shown in FIG. 9, the stream selection can also be based on a learning or heuristic model 900. The buffering can be determined based on intelligently learning, and adapting, to one or more objective learning parameters 910, including user-profile parameters 911, media category 912, end-user device profile 913, acceptable latency of playout from a start of the content stream or one of the seek positions, and network parameters 914. This approach typically includes an offline learning phase to train the model, followed by an online field-deployment phase. While the previously described strategies can be realized in low-complexity, an intelligent learning approach involves relatively moderate to high complexity (based on the training algorithm) for the learning phase followed by low complexity for the field-deployment phase.
[0040] The user-profile parameters 911 detect patterns in how a user 160 accesses the
content that they view. Some users may prefer to view content linearly from start to finish. Other users may prefer to quickly sample the content randomly or "channel surf. Still other users may prefer to playback portions of the content that they viewed earlier. The user-profile parameters 911 may include time or byte offsets of each of the user's access to the content, or a log of all the trick plays (e.g., fast- forward, reverse, pause, etc.) that the user requested.
[0041] The media category 912 detect patterns in the category of the content that a user 160 accesses. If a stream is a sporting event, such as a cricket match, the stream would have a number of replays associated with significant portions of the sporting event, such as a boundary, catch, and clean bowled. The media category 912 may include sporting event clips having highlight portions, movies, and news.
[0042] The end-user device profile 913 detect characteristics in the end-user device that affect the content that a user 160 accesses. Since each end-user device has a target resolution and bitrate, the buffering scheme gives more weight to the preferred resolution and bitrate. For example, when the end-user device is a mobile device, there is no need to buffer a high-definition (HD) stream. The end-user device profile 913 may include an HD display, mobile device, or personal computer.
[0043] The network parameters 914 detect characteristics in the network performance that affect the content that a user 160 accesses. Since the video content client device 150 can switch to a different bitrate version of a stream based on the available network bandwidth 610, a regression analysis of network bandwidth data that includes past and present usage may be useful to predict future changes in network bandwidth. The network parameters 914 may include time-series network bandwidth (i.e., data
samples of network bandwidth variation over time).
[0044] The learning model 900 shown in FIG. 9 inputs the learning parameters 910 to a preprocessing 920 module that performs sampling, dimensionality reduction by principal component analysis, and other preprocessing. The output of the
preprocessing 920 module is input to a predictive classification and modeling 930 module that includes learning by algorithms such as decision trees,
Bayesian/statistical classification, neural networks, fuzzy logic, and genetic algorithms. The output of the predictive classification and modeling 930 are the weights for segments associated with positions and multiple-version streams 940.
[0045] Although the disclosed embodiments describe a fully functioning method and computing device for intelligently pre-buffering at access points in an adaptive or scalable stream to optimize trick-play support, the reader should understand that other equivalent embodiments exist. Since numerous modifications and variations will occur to those reviewing this disclosure, the method and system for intelligently pre- buffering at access points in an adaptive or scalable stream to optimize trick-play support is not limited to the exact construction and operation illustrated and disclosed. Accordingly, this disclosure intends all suitable modifications and equivalents to fall within the scope of the claims.
Claims
1. A method, comprising: receiving a multimedia content stream from a multimedia content server, the multimedia content stream comprising a series of segments, each segment including a key frame and corresponding to a predicted seek position in the multimedia content stream, the multimedia content server delivering at least two versions of each segment in the multimedia content stream, each version reconstructed from at least one encoded component of the multimedia content stream, the versions varying a characteristic of the multimedia content stream; determining a likelihood of receiving a seek request from a user to move from a current playout position in the multimedia content stream to one of the predicted seek positions in the multimedia content stream; and determining a size of a buffer for each version of each segment in the multimedia content stream based on the likelihood of receiving the seek request.
2. The method of claim 1, wherein the multimedia content stream is an adaptive stream.
3. The method of claim 1, wherein the multimedia content stream is a scalable coding stream.
4. The method of claim 1, wherein the versions of each segment vary at least one of a bitrate, resolution, frame-rate, position, and color-component of the multimedia content stream.
5. The method of claim 1, wherein the determining of the likelihood of receiving the seek request further comprises: determining a time duration between the current playout position and the predicted seek position, wherein the likelihood of receiving the seek request decreases as the time duration increases.
6. The method of claim 1, wherein the determining of the likelihood of receiving the seek request further comprises: collecting a history of access to the multimedia content stream by the user over a period of time, wherein the likelihood of receiving the seek request increases when receipt of the seek request is consistent with the history of access to the multimedia content stream by the user.
7. The method of claim 1 , wherein when the characteristic that the versions vary is a bitrate, the determining of the size of the buffer for each version of each segment further comprises: determining a closeness between the bitrate of the multimedia content stream currently being played-out and the bitrate of the predicted seek position, wherein the size of the buffer increases when the bitrate of the predicted seek position becomes closer to the bitrate of the multimedia content stream currently being played-out, the size of the buffer being greatest when the bitrate of the predicted seek position equals the bitrate of the multimedia content stream currently being played-out.
8. The method of claim 1 , wherein when the characteristic that the versions vary is a bitrate, the determining of the size of the buffer for each version of each segment further comprises: determining a priority ordering of the versions for each segment in the multimedia content stream, wherein the size of the buffer increases for higher-priority versions, the size of the buffer being greatest for the highest-priority version.
9. The method of claim 1 , wherein when the characteristic that the versions vary is a bitrate, the determining of the size of the buffer for each version of each segment further comprises: determining a closeness between the bitrate of the multimedia content stream currently being played-out and the bitrate of the predicted seek position, wherein the size of the buffer increases when the bitrate of the predicted seek position becomes closer to, and is lesser than, an available network bandwidth associated with the current playout position in the multimedia content stream, the size of the buffer being greatest when the bitrate of the predicted seek position is closest to, and lesser than, the available network bandwidth.
10. The method of claim 1, wherein when the characteristic that the versions vary is a bitrate, the determining of the size of the buffer for each version of each segment further comprises: determining an available network bandwidth associated with the current playout position in the multimedia content stream, wherein the size of the buffer is determined to minimize a predicted latency time to start playout from the predicted seek position.
11. The method of claim 1 , wherein when the characteristic that the versions vary is a resolution, the determining of the size of the buffer for each version of each segment further comprises: determining a closeness between the resolution of the multimedia content stream currently being played-out and the resolution of the predicted seek position, wherein the size of the buffer increases when the resolution of the predicted seek position becomes closer to the resolution of the multimedia content stream currently being played-out, the size of the buffer being greatest when the resolution of the predicted seek position equals the resolution of the multimedia content stream currently being played-out.
12. The method of claim 1, wherein the determining of the likelihood of receiving the seek request further comprises: collecting learning parameters, including at least one of user-profile parameters, media category, end-user device profile, acceptable latency of playout from a start of multimedia content stream or one of the predicted seek positions, and network parameters; and calculating a weight for determining the size of the buffer for each encoded version of each segment in the multimedia content stream, the weight based on predictive classification and modeling of the learning parameters.
13. A computing device, comprising: a memory device resident in the computing device; and a processor disposed in communication with the memory device, the processor configured to: receive a multimedia content stream from a multimedia content server, the multimedia content stream comprising a series of segments, each segment including a key frame and corresponding to a predicted seek position in the multimedia content stream, the multimedia content server delivering at least two versions of each segment in the multimedia content stream, each version reconstructed from at least one encoded component of the multimedia content stream, the versions varying a characteristic of the multimedia content stream; determine a likelihood of receiving a seek request from a user to move from a current playout position in the multimedia content stream to one of the predicted seek positions in the multimedia content stream; and determine a size of a buffer for each version of each segment in the multimedia content stream based on the likelihood of receiving the seek request.
14. The computing device of claim 13, wherein to determine the likelihood of receiving the seek request, the processor is further configured to: determine a time duration between the current playout position and the predicted seek position, wherein the likelihood of receiving the seek request decreases as the time duration increases.
15. The computing device of claim 13, wherein to determine the likelihood of receiving the seek request, the processor is further configured to: collect a history of access to the multimedia content stream by the user over a period of time, wherein the likelihood of receiving the seek request increases when receipt of the seek request is consistent with the history of access to the multimedia content stream by the user.
16. The computing device of claim 13, wherein when the characteristic that the versions vary is a bitrate, to determine the size of the buffer for each version of each segment, the processor is further configured to: determine a closeness between the bitrate of the multimedia content stream currently being played-out and the bitrate of the predicted seek position, wherein the size of the buffer increases when the bitrate of the predicted seek position becomes closer to the bitrate of the multimedia content stream currently being played-out, the size of the buffer being greatest when the bitrate of the predicted seek position equals the bitrate of the multimedia content stream currently being played-out.
17. The computing device of claim 13, wherein when the characteristic that the versions vary is a bitrate, to determine the size of the buffer for each version of each segment, the processor is further configured to: determine a priority ordering of the versions for each segment in the multimedia content stream, wherein the size of the buffer increases for higher-priority versions, the size of the buffer being greatest for the highest-priority version.
18. The computing device of claim 13, wherein when the characteristic that the versions vary is a bitrate, to determine the size of the buffer for each version of each segment, the processor is further configured to: determine a closeness between the bitrate of the multimedia content stream currently being played-out and the bitrate of the predicted seek position, wherein the size of the buffer increases when the bitrate of the predicted seek position becomes closer to, and is lesser than, an available network bandwidth associated with the current playout position in the multimedia content stream, the size of the buffer being greatest when the bitrate of the predicted seek position is closest to, and lesser than, the available network bandwidth.
19. The computing device of claim 13, wherein when the characteristic that the versions vary is a bitrate, to determine the size of the buffer for each version of each segment, the processor is further configured to: determine an available network bandwidth associated with the current playout position in the multimedia content stream, wherein the size of the buffer is determined to minimize a predicted latency time to start playout from the predicted seek position.
20. The computing device of claim 13, wherein when the characteristic that the versions vary is a resolution, to determine the size of the buffer for each version of each segment, the processor is further configured to: determining a closeness between the resolution of the multimedia content stream currently being played-out and the resolution of the predicted seek position, wherein the size of the buffer increases when the resolution of the predicted seek position becomes closer to the resolution of the multimedia content stream currently being played-out, the size of the buffer being greatest when the resolution of the predicted seek position equals the resolution of the multimedia content stream currently being played-out.
21. The computing device of claim 13, wherein to determine the likelihood of receiving the seek request, the processor is further configured to: collect learning parameters, including at least one of user-profile parameters, media category, end-user device profile, acceptable latency of playout from a start of multimedia content stream or one of the predicted seek positions, and network parameters; and calculate a weight for determining the size of the buffer for each encoded version of each segment in the multimedia content stream, the weight based on predictive classification and modeling of the learning parameters.
22. A non-transitory computer-readable medium, comprising computer-executable instructions that, when executed on a computing device, perform steps of: receiving a multimedia content stream from a multimedia content server, the multimedia content stream comprising a series of segments, each segment including a key frame and corresponding to a predicted seek position in the multimedia content stream, the multimedia content server delivering at least two versions of each segment in the multimedia content stream, each version reconstructed from at least one encoded component of the multimedia content stream, the versions varying a characteristic of the multimedia content stream; determining a likelihood of receiving a seek request from a user to move from a current playout position in the multimedia content stream to one of the predicted seek positions in the multimedia content stream; and determining a size of a buffer for each version of each segment in the multimedia content stream based on the likelihood of receiving the seek request.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP17191173.8A EP3273698B1 (en) | 2011-06-24 | 2012-06-25 | Intelligent buffering of media streams delivered over internet |
EP12735690.5A EP2724548B1 (en) | 2011-06-24 | 2012-06-25 | Intelligent buffering of media streams delivered over internet |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/168,410 | 2011-06-24 | ||
US13/168,410 US9615126B2 (en) | 2011-06-24 | 2011-06-24 | Intelligent buffering of media streams delivered over internet |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012178174A1 true WO2012178174A1 (en) | 2012-12-27 |
Family
ID=46514774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2012/044033 WO2012178174A1 (en) | 2011-06-24 | 2012-06-25 | Intelligent buffering of media streams delivered over internet |
Country Status (3)
Country | Link |
---|---|
US (2) | US9615126B2 (en) |
EP (2) | EP3273698B1 (en) |
WO (1) | WO2012178174A1 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731676A (en) * | 2013-12-31 | 2014-04-16 | 深圳Tcl新技术有限公司 | Playing method and device compatible to multi-protocol multimedia data |
WO2015000936A1 (en) * | 2013-07-03 | 2015-01-08 | Koninklijke Kpn N.V. | Streaming of segmented content |
US10063939B1 (en) | 2017-04-26 | 2018-08-28 | International Business Machines Corporation | Intelligent replay of user specific interesting content during online video buffering |
EP3376769A1 (en) * | 2017-03-13 | 2018-09-19 | Honeywell International Inc. | Systems and methods for adaptive streaming using jpeg 2000 |
US10225306B2 (en) | 2011-12-29 | 2019-03-05 | Koninklijke Kpn N.V. | Controlled streaming of segmented content |
US10523723B2 (en) | 2014-06-06 | 2019-12-31 | Koninklijke Kpn N.V. | Method, system and various components of such a system for selecting a chunk identifier |
US11477262B2 (en) | 2014-02-13 | 2022-10-18 | Koninklijke Kpn N.V. | Requesting multiple chunks from a network node on the basis of a single request message |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10410222B2 (en) | 2009-07-23 | 2019-09-10 | DISH Technologies L.L.C. | Messaging service for providing updates for multimedia content of a live event delivered over the internet |
US9049484B2 (en) | 2011-12-06 | 2015-06-02 | Echostar Technologies L.L.C. | Efficient assignment of program copies in a network digital video recorder |
EP2792123B1 (en) | 2011-12-06 | 2017-09-27 | Echostar Technologies L.L.C. | Remote storage digital video recorder and related operating methods |
US9276989B2 (en) * | 2012-03-30 | 2016-03-01 | Adobe Systems Incorporated | Buffering in HTTP streaming client |
JP2013232697A (en) | 2012-04-27 | 2013-11-14 | Sony Corp | Content transfer device and content transfer method, content reproduction device and content reproduction method, content distribution system, and computer program |
US9031889B1 (en) | 2012-11-09 | 2015-05-12 | DataInfoCom USA Inc. | Analytics scripting systems and methods |
US9230211B1 (en) * | 2012-11-09 | 2016-01-05 | DataInfoCom USA, Inc. | Analytics scripting systems and methods |
WO2014106206A1 (en) | 2012-12-28 | 2014-07-03 | DISH Digital L.L.C. | Adaptive multicast delivery of media streams |
US10051025B2 (en) | 2012-12-31 | 2018-08-14 | DISH Technologies L.L.C. | Method and apparatus for estimating packet loss |
US10104141B2 (en) | 2012-12-31 | 2018-10-16 | DISH Technologies L.L.C. | Methods and apparatus for proactive multi-path routing |
US10708319B2 (en) | 2012-12-31 | 2020-07-07 | Dish Technologies Llc | Methods and apparatus for providing social viewing of media content |
US8881213B2 (en) * | 2013-03-13 | 2014-11-04 | Verizon Patent And Licensing Inc. | Alignment of video frames |
US9307269B2 (en) * | 2013-03-14 | 2016-04-05 | Google Inc. | Determining interest levels in videos |
US9854017B2 (en) * | 2013-03-15 | 2017-12-26 | Qualcomm Incorporated | Resilience in the presence of missing media segments in dynamic adaptive streaming over HTTP |
GB2512310A (en) * | 2013-03-25 | 2014-10-01 | Sony Corp | Media Distribution |
EP2785067A1 (en) * | 2013-03-27 | 2014-10-01 | Alcatel Lucent | A method and client for requesting, receiving and decoding adaptive streaming video |
CN104168301B (en) * | 2013-05-17 | 2018-01-26 | 北京音之邦文化科技有限公司 | The method and apparatus that content of multimedia is provided |
US10368110B1 (en) * | 2013-08-21 | 2019-07-30 | Visualon, Inc. | Smooth media data switching for media players |
CN105556922B (en) * | 2013-09-17 | 2019-06-28 | 瑞典爱立信有限公司 | DASH in network indicates adaptive |
US20150189365A1 (en) * | 2013-12-26 | 2015-07-02 | Thomson Licensing | Method and apparatus for generating a recording index |
US9247313B1 (en) | 2014-01-06 | 2016-01-26 | Google Inc. | Dynamic video ad format based on user bitrate and bandwidth |
US9525641B1 (en) * | 2014-01-24 | 2016-12-20 | Google Inc. | Facilitating buffer wait time determination based on device- or entity-related conditions |
US9106887B1 (en) * | 2014-03-13 | 2015-08-11 | Wowza Media Systems, LLC | Adjusting encoding parameters at a mobile device based on a change in available network bandwidth |
US10599706B2 (en) | 2014-03-20 | 2020-03-24 | Gracenote Digital Ventures, Llc | Retrieving and playing out media content for a personalized playlist |
KR20150121459A (en) * | 2014-04-21 | 2015-10-29 | 삼성전자주식회사 | SERVER DEVICE FOR PROVIDING VoD SERVICE, CLIENT DEVICE AND METHODS THEREOF |
US9628833B2 (en) * | 2014-05-30 | 2017-04-18 | Apple Inc. | Media requests for trickplay |
US10362094B2 (en) | 2014-07-25 | 2019-07-23 | Gracenote Digital Ventures, Llc | Retrieval and playout of media content |
US11240349B2 (en) * | 2014-12-31 | 2022-02-01 | Ebay Inc. | Multimodal content recognition and contextual advertising and content delivery |
US9756112B2 (en) | 2015-02-11 | 2017-09-05 | At&T Intellectual Property I, L.P. | Method and system for managing service quality according to network status predictions |
EP3627337A1 (en) * | 2015-02-27 | 2020-03-25 | DivX, LLC | Systems and methods for frame duplication and frame extension in live video encoding and streaming |
US10440076B2 (en) | 2015-03-10 | 2019-10-08 | Mobitv, Inc. | Media seek mechanisms |
US10620810B2 (en) * | 2015-05-15 | 2020-04-14 | Spotify Ab | Method and a system for performing scrubbing in a video stream |
JP2017069636A (en) * | 2015-09-28 | 2017-04-06 | 株式会社リコー | Information processing device, distribution method and program |
US10368109B2 (en) | 2015-12-29 | 2019-07-30 | DISH Technologies L.L.C. | Dynamic content delivery routing and related methods and systems |
CA3010007C (en) * | 2015-12-31 | 2020-07-14 | DISH Technologies L.L.C. | Systems and methods for bandwidth estimation in oscillating networks |
US10122781B2 (en) | 2016-01-29 | 2018-11-06 | Roku Inc. | Selection of video segments for adaptive streaming |
US10218755B2 (en) | 2016-01-29 | 2019-02-26 | Roku, Inc. | Extended selection and alignment of video segments for adaptive streaming |
US10057654B2 (en) | 2016-01-29 | 2018-08-21 | Roku, Inc. | Selection and alignment of video segments for adaptive streaming |
TWI610560B (en) * | 2016-05-06 | 2018-01-01 | 晨星半導體股份有限公司 | Method for controlling bit stream decoding and associated bit stream decoding circuit |
CN111224857B (en) * | 2016-06-29 | 2024-09-17 | 华为技术有限公司 | Method and device for realizing combined VPN |
US10034033B2 (en) * | 2016-07-28 | 2018-07-24 | Cisco Technology, Inc. | Predictive media distribution system |
US11044507B2 (en) * | 2016-09-30 | 2021-06-22 | British Telecommunications Public Limited Company | Viewer importance adaptive bit rate delivery |
EP3520420B1 (en) | 2016-09-30 | 2022-11-02 | British Telecommunications public limited company | Viewer importance adaptive bit rate delivery |
US10148721B2 (en) * | 2016-12-06 | 2018-12-04 | Futurewei Technologies, Inc. | Video stream network coding in information centric networks |
US10362080B2 (en) * | 2017-04-25 | 2019-07-23 | At&T Intellectual Property I, L.P. | Methods, systems, and devices for video streaming adaptation using control theoretic approach |
US10547885B2 (en) | 2017-06-08 | 2020-01-28 | T-Mobile Usa, Inc. | Adaptively selecting content resolution |
US10873775B2 (en) | 2017-06-12 | 2020-12-22 | Netflix, Inc. | Staggered key frame video encoding |
CN109218740B (en) * | 2017-06-29 | 2022-01-04 | 武汉斗鱼网络科技有限公司 | Display method, storage medium, electronic device and system of double-screen video stream |
US10547662B2 (en) * | 2017-08-17 | 2020-01-28 | Cisco Technology, Inc. | Bitrate stream selection for downloading video content to a client device |
US11190839B2 (en) * | 2017-09-22 | 2021-11-30 | Ntt Docomo, Inc. | Communication quality adjusting system |
US10404713B2 (en) | 2017-09-29 | 2019-09-03 | Zott, Inc. | Multi-source broadcasting architecture |
US10694221B2 (en) | 2018-03-06 | 2020-06-23 | At&T Intellectual Property I, L.P. | Method for intelligent buffering for over the top (OTT) video delivery |
US11429891B2 (en) | 2018-03-07 | 2022-08-30 | At&T Intellectual Property I, L.P. | Method to identify video applications from encrypted over-the-top (OTT) data |
US10382821B1 (en) * | 2018-03-15 | 2019-08-13 | Rovi Guides, Inc. | Methods and systems for selecting a destination for storage of a media asset based on wireless access likelihood |
US10382812B1 (en) * | 2018-03-15 | 2019-08-13 | Rovi Guides, Inc. | Methods and systems for selecting a destination for storage of a media asset based on trick-play likelihood |
US10349059B1 (en) | 2018-07-17 | 2019-07-09 | Wowza Media Systems, LLC | Adjusting encoding frame size based on available network bandwidth |
US10728180B2 (en) | 2018-08-21 | 2020-07-28 | At&T Intellectual Property I, L.P. | Apparatus, storage medium and method for adaptive bitrate streaming adaptation of variable bitrate encodings |
US10674166B2 (en) | 2018-08-22 | 2020-06-02 | Purdue Research Foundation | Method and system for scalable video streaming |
US10693575B2 (en) | 2018-08-31 | 2020-06-23 | At&T Intellectual Property I, L.P. | System and method for throughput prediction for cellular networks |
US10848819B2 (en) * | 2018-09-25 | 2020-11-24 | Rovi Guides, Inc. | Systems and methods for adjusting buffer size |
US11178459B1 (en) * | 2018-09-26 | 2021-11-16 | Amazon Technologies, Inc. | Nonlinear dynamic prioritized content caching for segmented content |
US11265597B2 (en) * | 2018-10-23 | 2022-03-01 | Rovi Guides, Inc. | Methods and systems for predictive buffering of related content segments |
US10868726B2 (en) | 2018-12-07 | 2020-12-15 | At&T Intellectual Property I, L.P. | Apparatus and method for selecting a bandwidth prediction source |
CN111510761B (en) * | 2019-01-30 | 2021-06-04 | 上海哔哩哔哩科技有限公司 | First frame equalization current limiting method and device, computer equipment and readable storage medium |
US11095570B2 (en) * | 2019-02-21 | 2021-08-17 | EMC IP Holding Company LLC | Scaling a number of segments in a stream of data based on communication load and trend direction |
US11490149B2 (en) | 2019-03-15 | 2022-11-01 | At&T Intellectual Property I, L.P. | Cap-based client-network interaction for improved streaming experience |
US11184310B2 (en) * | 2019-06-11 | 2021-11-23 | International Business Machines Corporation | Social media infused relationship management based on 5G connection speed |
EP4074058A1 (en) * | 2019-12-11 | 2022-10-19 | Google LLC | Methods, systems, and media for selecting formats for streaming media content items |
US11347746B2 (en) | 2020-02-20 | 2022-05-31 | EMC IP Holding Company LLC | Efficient rolling transactions in a data storage system |
FR3122956A1 (en) * | 2021-05-17 | 2022-11-18 | Orange | Adaptive progressive downloading of content broadcast in real time on a mobile radio network, associated computer program and multimedia stream player terminal |
US12063260B2 (en) * | 2022-08-31 | 2024-08-13 | Rovi Guides, Inc. | Intelligent delivery and playout to prevent stalling in video streaming |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080310814A1 (en) * | 2007-06-13 | 2008-12-18 | Microsoft Corporation | Multi-location buffering of streaming media data |
US20090292819A1 (en) * | 2008-05-23 | 2009-11-26 | Porto Technology, Llc | System and method for adaptive segment prefetching of streaming media |
WO2011038034A1 (en) * | 2009-09-22 | 2011-03-31 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel http and forward error correction |
WO2011070552A1 (en) * | 2009-12-11 | 2011-06-16 | Nokia Corporation | Apparatus and methods for describing and timing representations in streaming media files |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7159233B2 (en) * | 2000-01-28 | 2007-01-02 | Sedna Patent Services, Llc | Method and apparatus for preprocessing and postprocessing content in an interactive information distribution system |
US6912612B2 (en) * | 2002-02-25 | 2005-06-28 | Intel Corporation | Shared bypass bus structure |
US7231496B2 (en) | 2003-09-15 | 2007-06-12 | International Business Machines Corporation | Method, system and program product for caching data objects |
JP4291664B2 (en) | 2003-10-14 | 2009-07-08 | 株式会社日立製作所 | Storage apparatus and system having communication buffer reservation function |
WO2005083637A1 (en) * | 2004-02-27 | 2005-09-09 | Td Vision Corporation, S.A. De C.V. | Method and system for digital decoding 3d stereoscopic video images |
CA2557533A1 (en) * | 2004-02-27 | 2005-09-09 | Td Vision Corporation S.A. De C.V. | Method and system for digital coding 3d stereoscopic video images |
US7480701B2 (en) * | 2004-12-15 | 2009-01-20 | Microsoft Corporation | Mixed-media service collections for multimedia platforms |
US7266663B2 (en) * | 2005-01-13 | 2007-09-04 | International Business Machines Corporation | Automatic cache activation and deactivation for power reduction |
JP4917148B2 (en) * | 2007-03-19 | 2012-04-18 | 富士通株式会社 | Bitstream conversion method, bitstream conversion apparatus, bitstream combination apparatus, bitstream division program, bitstream conversion program, and bitstream combination program |
US9979931B2 (en) * | 2007-05-30 | 2018-05-22 | Adobe Systems Incorporated | Transmitting a digital media stream that is already being transmitted to a first device to a second device and inhibiting presenting transmission of frames included within a sequence of frames until after an initial frame and frames between the initial frame and a requested subsequent frame have been received by the second device |
US20100017516A1 (en) | 2008-07-16 | 2010-01-21 | General Instrument Corporation | Demand-driven optimization and balancing of transcoding resources |
WO2010111261A1 (en) | 2009-03-23 | 2010-09-30 | Azuki Systems, Inc. | Method and system for efficient streaming video dynamic rate adaptation |
EP2302845B1 (en) * | 2009-09-23 | 2012-06-20 | Google, Inc. | Method and device for determining a jitter buffer level |
JP2011114444A (en) * | 2009-11-25 | 2011-06-09 | Fujitsu Ltd | Information processor, method of generating information, and program |
KR20110061468A (en) * | 2009-12-01 | 2011-06-09 | (주)휴맥스 | Methods for encoding/decoding high definition image and apparatuses for performing the same |
EP2522113A1 (en) * | 2010-01-04 | 2012-11-14 | Telefonaktiebolaget LM Ericsson (publ) | Method and node in an internet protocol television (iptv) network |
US8689267B2 (en) * | 2010-12-06 | 2014-04-01 | Netflix, Inc. | Variable bit video streams for adaptive streaming |
US9185468B2 (en) * | 2010-12-20 | 2015-11-10 | Google Technology Holdings LLC | MP4 container file formats and methods of processing MP4 container files |
-
2011
- 2011-06-24 US US13/168,410 patent/US9615126B2/en active Active
-
2012
- 2012-06-25 EP EP17191173.8A patent/EP3273698B1/en active Active
- 2012-06-25 WO PCT/US2012/044033 patent/WO2012178174A1/en active Application Filing
- 2012-06-25 EP EP12735690.5A patent/EP2724548B1/en active Active
-
2016
- 2016-12-20 US US15/385,607 patent/US9942585B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080310814A1 (en) * | 2007-06-13 | 2008-12-18 | Microsoft Corporation | Multi-location buffering of streaming media data |
US20090292819A1 (en) * | 2008-05-23 | 2009-11-26 | Porto Technology, Llc | System and method for adaptive segment prefetching of streaming media |
WO2011038034A1 (en) * | 2009-09-22 | 2011-03-31 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel http and forward error correction |
WO2011070552A1 (en) * | 2009-12-11 | 2011-06-16 | Nokia Corporation | Apparatus and methods for describing and timing representations in streaming media files |
Non-Patent Citations (2)
Title |
---|
THOMAS SCHIERL ET AL: "Priority-based Media Delivery using SVC with RTP and HTTP streaming", MULTIMEDIA TOOLS AND APPLICATIONS, KLUWER ACADEMIC PUBLISHERS, BO, vol. 55, no. 2, 18 September 2010 (2010-09-18), pages 227 - 246, XP019939627, ISSN: 1573-7721, DOI: 10.1007/S11042-010-0572-5 * |
ZHENG C., SHEN G., LI, S.: "Distributed Prefetching Scheme for Random Seek Support in Peer-to-Peer Streaming Applications", ACM, 2 PENN PLAZA, SUITE 701 - NEW YORK USA, 11 November 2005 (2005-11-11), XP040030475 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10225306B2 (en) | 2011-12-29 | 2019-03-05 | Koninklijke Kpn N.V. | Controlled streaming of segmented content |
WO2015000936A1 (en) * | 2013-07-03 | 2015-01-08 | Koninklijke Kpn N.V. | Streaming of segmented content |
CN105379295A (en) * | 2013-07-03 | 2016-03-02 | 皇家Kpn公司 | Streaming of segmented content |
JP2016533062A (en) * | 2013-07-03 | 2016-10-20 | コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ | Stream segmented content |
US10171528B2 (en) | 2013-07-03 | 2019-01-01 | Koninklijke Kpn N.V. | Streaming of segmented content |
US10609101B2 (en) | 2013-07-03 | 2020-03-31 | Koninklijke Kpn N.V. | Streaming of segmented content |
CN103731676A (en) * | 2013-12-31 | 2014-04-16 | 深圳Tcl新技术有限公司 | Playing method and device compatible to multi-protocol multimedia data |
US11477262B2 (en) | 2014-02-13 | 2022-10-18 | Koninklijke Kpn N.V. | Requesting multiple chunks from a network node on the basis of a single request message |
US10523723B2 (en) | 2014-06-06 | 2019-12-31 | Koninklijke Kpn N.V. | Method, system and various components of such a system for selecting a chunk identifier |
EP3376769A1 (en) * | 2017-03-13 | 2018-09-19 | Honeywell International Inc. | Systems and methods for adaptive streaming using jpeg 2000 |
US10063939B1 (en) | 2017-04-26 | 2018-08-28 | International Business Machines Corporation | Intelligent replay of user specific interesting content during online video buffering |
Also Published As
Publication number | Publication date |
---|---|
US20170111672A1 (en) | 2017-04-20 |
US9615126B2 (en) | 2017-04-04 |
US20120331106A1 (en) | 2012-12-27 |
EP3273698A1 (en) | 2018-01-24 |
EP3273698B1 (en) | 2021-08-04 |
EP2724548B1 (en) | 2017-09-20 |
EP2724548A1 (en) | 2014-04-30 |
US9942585B2 (en) | 2018-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9942585B2 (en) | Intelligent buffering of media streams delivered over internet | |
US10623785B2 (en) | Streaming manifest quality control | |
US11076187B2 (en) | Systems and methods for performing quality based streaming | |
EP3387836B1 (en) | Recording of abr content | |
US9571827B2 (en) | Techniques for adaptive video streaming | |
US10298985B2 (en) | Systems and methods for performing quality based streaming | |
US9015779B2 (en) | Streaming video server with segment length control and methods for use therewith | |
US8965960B2 (en) | Client device with video player and client-side proxy and methods for use therewith | |
US9113182B2 (en) | Selecting a media content source based on monetary cost | |
US20180063590A1 (en) | Systems and Methods for Encoding and Playing Back 360° View Video Content | |
US10735744B2 (en) | Adaptive bitrate streaming techniques | |
JP2019526188A (en) | System and method for encoding video content | |
US9253545B2 (en) | Routing media content based on monetary cost | |
US20230188764A1 (en) | Predictive per-title adaptive bitrate encoding | |
US9294821B2 (en) | Scrubbing noise remover and methods for use therewith | |
US20240022623A1 (en) | Methods and systems for streaming media content |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12735690 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
REEP | Request for entry into the european phase |
Ref document number: 2012735690 Country of ref document: EP |