Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
H04L-001/00
H04N-021/231
H04N-021/234
H04N-021/2343
H04N-021/239
H04N-021/258
H04N-021/44
H04N-021/442
H04N-021/462
H04N-021/84
H04N-021/845
H03M-013/05
H04L-029/06
출원번호
US-0245826
(2014-04-04)
등록번호
US-9191151
(2015-11-17)
발명자
/ 주소
Luby, Michael G.
Wang, Bin
Watson, Mark
Vicisano, Lorenzo
Pakzad, Payam
출원인 / 주소
QUALCOMM Incorporated
대리인 / 주소
Chiang, Campbell C.
인용정보
피인용 횟수 :
6인용 특허 :
230
초록▼
A block-request streaming system provides for improvements in the user experience and bandwidth efficiency of such systems, typically using an ingestion system that generates data in a form to be served by a conventional file server (HTTP, FTP, or the like), wherein the ingestion system intakes cont
A block-request streaming system provides for improvements in the user experience and bandwidth efficiency of such systems, typically using an ingestion system that generates data in a form to be served by a conventional file server (HTTP, FTP, or the like), wherein the ingestion system intakes content and prepares it as files or data elements to be served by the file server, which might or might not include a cache. A client device can be adapted to take advantage of the ingestion process as well as including improvements that make for a better presentation independent of the ingestion process. In the block-request streaming system, the an ingestion system generates data according to erasure codes and the client device, through various selection and timing of requests for media data and redundant data, can efficiently decode media to provide for presentations.
대표청구항▼
1. A computer-implemented method, comprising: determining, at a client device, media blocks that are needed for a media presentation;identifying one or more forward error correction (FEC) files, the one or more FEC files including one or more FEC blocks usable by the client device to recover portion
1. A computer-implemented method, comprising: determining, at a client device, media blocks that are needed for a media presentation;identifying one or more forward error correction (FEC) files, the one or more FEC files including one or more FEC blocks usable by the client device to recover portions of the media blocks not received by the client device;determining a position of the one or more FEC blocks within the one or more FEC files;transmitting a first request for a first media file that is usable by the client device to provide the media presentation;receiving the first media file;transmitting a second request for a second media file that is usable by the client device to provide additional portions of the media presentation;receiving the second media file prior to completion of receiving the first media file;transmitting a third request for an FEC file that is usable by the client device to recover portions of either the first media file or the second media file not yet received by the client device; andreceiving at least a portion of the FEC file prior to completion of receiving the first media file and the second media file. 2. The method of claim 1, further comprising: sending requests for media files in parallel, the media files including the media blocks;receiving the media files in response to requests; andmanaging requests in parallel, wherein managing includes sending requests while pending requests are outstanding and initiating receiving of responses to such requests prior to completion of prior responses. 3. The method of claim 1, wherein a media presentation is requested as a plurality of media files including the media blocks. 4. The method of claim 1, further comprising recovering portions of media files not yet received using FEC symbols from the FEC file. 5. The method of claim 1, further comprising: determining a bandwidth allocation among a plurality of requests;determining playout times associated with the plurality of requests; andadjusting the bandwidth allocation among the plurality of requests to reduce a probability of a stall, wherein a stall occurs when a playout time is reached before media that is associated with that playout time is available for playout. 6. The method of claim 1, wherein a plurality of requests for media files comprises a plurality of requests for byte ranges from one or more files. 7. The method of claim 1, further comprising determining an amount of data of a plurality of media files to request based on a capacity and contents of a media buffer. 8. The method of claim 1, further comprising: determining which of a plurality of outstanding requests to cancel based on a network condition; andsending cancellation requests to cancel determined requests. 9. The method of claim 1, further comprising determining which FEC blocks to request based on a target repair data ratio, a symbol size, a byte offset of a prior media fragment and a byte offset of a current media fragment. 10. An apparatus, comprising: a processor configured to: determine media blocks that are needed for a media presentation;identify one or more forward error correction (FEC) files, the one or more FEC files including one or more FEC blocks usable by the apparatus to recover portions of the media blocks not received by the apparatus; anddetermine a position of the one or more FEC blocks within the one or more FEC filesa transmitter configured to transmit a first request for a first media file that is usable to provide the media presentation; anda receiver configured to receive the first media file;wherein the transmitter is further configured to transmit a second request for a second media file that is usable to provide additional portions of the media presentation;wherein the receiver is further configured to receive the second media file prior to completion of receiving the first media file;wherein the transmitter is further configured to transmit a third request for an FEC file that is usable to recover portions of either the first media file or the second media file not yet received; andwherein the receiver is further configured to receive at least a portion of the FEC file prior to completion of receiving the first media file and the second media file. 11. The apparatus of claim 10, wherein the processor is further configured to: send requests for media files in parallel, the media files including the media blocks;receive the media files in response to requests; andmanage requests in parallel, wherein managing includes sending requests while pending requests are outstanding and initiating receiving of responses to such requests prior to completion of prior responses. 12. The apparatus of claim 10, wherein a media presentation is requested as a plurality of media files including the media blocks. 13. The apparatus of claim 10, wherein the processor is further configured to recover portions of media files not yet received using FEC symbols from the FEC file. 14. The apparatus of claim 10, wherein the processor is further configured to: determine a bandwidth allocation among a plurality of requests;determine playout times associated with the plurality of requests; andadjust the bandwidth allocation among the plurality of requests to reduce a probability of a stall, wherein a stall occurs when a playout time is reached before media that is associated with that playout time is available for playout. 15. The apparatus of claim 10, wherein a plurality of requests for media files comprises a plurality of requests for byte ranges from one or more files. 16. The apparatus of claim 10, wherein the processor is further configured to determine an amount of data of a plurality of media files to request based on a capacity and contents of a media buffer. 17. The apparatus of claim 10, wherein the processor is further configured to: determine which of a plurality of outstanding requests to cancel based on a network condition; andsend cancellation requests to cancel determined requests. 18. The apparatus of claim 10, wherein the processor is further configured to determine which FEC blocks to request based on a target repair data ratio, a symbol size, a byte offset of a prior media fragment and a byte offset of a current media fragment. 19. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed, cause one or more computing devices to: determine media blocks that are needed for a media presentation;identify one or more forward error correction (FEC) files, the one or more FEC files including one or more FEC blocks usable by a client device to recover portions of the media blocks not received by the client device;determine a position of the one or more FEC blocks within the one or more FEC files;determine one or more FEC files that contain the one or more FEC blocks;transmit a first request for a first media file that is usable to provide the media presentation;receive the first media file;transmit a second request for a second media file that is usable to provide additional portions of the media presentation;receive the second media file prior to completion of receiving the first media file;transmit a third request for an FEC file that is usable to recover portions of either the first media file or the second media file not yet received; andreceive at least a portion of the FEC file prior to completion of receiving the first media file and the second media file. 20. The one or more non-transitory computer-readable media of claim 19, further storing computer-executable instructions that, when executed, cause the one or more computing devices to: send requests for media files in parallel;receive the media files in response to requests; andmanage requests in parallel, wherein managing includes sending requests while pending requests are outstanding and initiating receiving of responses to such requests prior to completion of prior responses. 21. The one or more non-transitory computer-readable media of claim 19, wherein a media presentation is requested as a plurality of media files. 22. The one or more non-transitory computer-readable media of claim 19, further storing computer-executable instructions that, when executed, cause the one or more computing devices to recover portions of media files not yet received using FEC symbols from the FEC file. 23. The one or more non-transitory computer-readable media of claim 19, further storing computer-executable instructions that, when executed, cause the one or more computing devices to: determine a bandwidth allocation among a plurality of requests;determine playout times associated with the plurality of requests; andadjust the bandwidth allocation among the plurality of requests to reduce a probability of a stall, wherein a stall occurs when a playout time is reached before media that is associated with that playout time is available for playout. 24. The one or more non-transitory computer-readable media of claim 19, wherein a plurality of requests for media files comprises a plurality of requests for byte ranges from one or more files. 25. The one or more non-transitory computer-readable media of claim 19, further storing computer-executable instructions that, when executed, cause the one or more computing devices to determine an amount of data of a plurality of media files to request based on a capacity and contents of a media buffer. 26. The one or more non-transitory computer-readable media of claim 19, further storing computer-executable instructions that, when executed, cause the one or more computing devices to: determine which of a plurality of outstanding requests to cancel based on a network condition; andsend cancellation requests to cancel determined requests. 27. The one or more non-transitory computer-readable media of claim 19, further storing computer-executable instructions that, when executed, cause the one or more computing devices to determine which FEC blocks to request based on a target repair data ratio, a symbol size, a byte offset of a prior media fragment and a byte offset of a current media fragment.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (230)
Parry, William G.; Lee, Mingtzong; Lorton, Christopher W.; Raja, Jayachandran; Smirnov, Serge, Analyzing, indexing and seeking of streaming information.
Chang,Hoon; Lee,Hyun Seok; Kim,Dae Gyun; Koo,Chang Hoi, Apparatus and method for exchanging variable-length data according to radio link protocol in mobile communication system.
Chang,Hoon; Lee,Hyun Seok; Kim,Dae Gyun; Koo,Chang Hoi, Apparatus and method for exchanging variable-length data according to radio link protocol in mobile communication system.
Eberlein Ernst,DEX ; Breiling Marco,DEX ; Stoessel Jan,DEX ; Gerhauser Heinz,DEX, Apparatus and method for transmitting information and apparatus and method for receiving information.
Oh, Jong-Ee; Lee, Sok-Kyu; Cheong, Min-Ho; Choi, Jee-Yon; Park, Jae-Woo; Chung, Hyun-Kyu, Apparatus and method for transmitting/receiving data in communication system.
Dill,Jeffrey C.; Lopez Permouth,Sergio R.; Lindsey,Alan Ray; Lo,Yung Cheng; Alder,Frank A.; Song,Xiangyu, Apparatus and method of CTCM encoding and decoding for a digital communication system.
Watson, Mark; Luby, Michael G., Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems.
Gelman Alexander (Brooklyn NY) Kobrinski Haim (Colts Neck NJ) Smoot Lanny S. (Morris Township ; Morris County NJ) Weinstein Stephen B. (Summit NJ), Communications architecture and method for distributing information services.
Glover Willie T. (San Jose CA) Singh Gururaj (San Jose CA) Gupta Amar (Cupertino CA) Newman Peter (Mountain View CA), Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode.
Bolosky William J. ; Douceur John R., Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates.
Witty Carl R. ; Birdwell Kenneth J. ; Sargent James Randall ; Moran Brian, Data delivery system and method for delivering data and redundant information over a unidirectional network.
Butterfield Lee A ; Giallorenzi Thomas R ; Gibson ; Jr. L Andrew ; Griffin Dan M ; Harris Johnny M ; Perkins Steven B ; Steagall R William, Data scrambling system and method and communications system incorporating same.
Shokrollahi,M. Amin, Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters.
Shokrollahi,M. Amin, Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters.
Schuster Guido M. ; Borella Michael ; Mahler Jerry ; Sidhu Ikhlaq, Forward error correction system for packet based data and real time media, using cross-wise parity calculation.
Luby Michael G. ; Shokrollahi Mohammad Amin,DEX ; Stemann Volker,DEX ; Mitzenmacher Michael D. ; Spielman Daniel A., Irregularly graphed encoding technique.
Wolfgang, H. Lewis, METHOD FOR PACKET-LEVEL FEC ENCODING, IN WHICH ON A SOURCE PACKET-BY-SOURCE PACKET BASIS, THE ERROR CORRECTION CONTRIBUTIONS OF A SOURCE PACKET TO A PLURALITY OF WILDCARD PACKETS ARE COMPUTED, AND TH.
Luby Michael G. ; Mitzenmacher Michael D. ; Shokrollahi Mohammad Amin,DEX ; Spielman Daniel A. ; Stemann Volker,DEX, Message encoding with irregular graphing.
Krause Edward A. ; Shen Paul ; Tom Adam S., Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping prese.
Kroeger, Brian William; Vojcic, Branimir; Pickholtz, Raymond L.; El-Dinary, Ashruf, Method and apparatus for forward error correction coding for an AM in-band on-channel digital audio broadcasting system.
Miura,Tsuyoshi; Ihara,Noriyuki; Fujita,Shin; Nakagawa,Akira; Ichiki,Atsushi, Method and apparatus for generating error correction data, and a computer-readable recording medium recording an error correction data generating program thereon.
Deck Bernhard,DEX ; Lehmann Josef,DEX ; Ramseier Stefan,CHX ; Westby Oddleif,NOX, Method and apparatus for information transmission via power supply lines.
Balicki Janusz K. ; Nouban Bezhad ; Kiani Khusrow, Method and apparatus for reducing the number of programmable architecture elements required for implementing a look-up t.
Cheng Mark W ; Honkasalo Zhi-Chun,FIX, Method and apparatus for segmentation and assembly of data frames for retransmission in a telecommunications system.
Park, Jaewoo; Oh, Jong-Ee; Lee, Il-Gu; Lee, Sok-Kyu; Cheong, Minho; Choi, Jeeyon; Lee, Jae-Seung; Kim, Yun-Joo, Method and apparatus for transceiving data in a MIMO system.
Baird Randall B. ; McFadden Martin J., Method for accessing one or more streams in a video storage system using multiple queues and maintaining continuity ther.
Danneels Gunner D. ; Cox Katherine ; Odell Robert M. ; Schlesinger Robert A. ; Gregory Leora J. ; Sampat Ketan R., Method for semi-reliable, unidirectional broadcast information services.
Kim, Jin Pil; Kim, Young In; Hong, Ho Taek; Choi, In Hwan; Kwak, Kook Yeon; Lee, Hyoung Gon; Kim, Byoung Gill; Kim, Jin Woo; Kim, Jong Moon; Song, Won Gyu, Method of processing traffic information and digital broadcast system.
Rachel E. Tillman ; Thomas R. Gardos ; John J. Kirby ; Jeff N. Kidder ; Rajeeb Hazra, Method of providing replay on demand for streaming digital multimedia.
Garudadri, Harinath; Srinivasamurthy, Naveen B.; Chung, Hyukjune; Ramachandran, Kannan; Majumdar, Abhik, Method, apparatus, and system for enhancing robustness of predictive video codecs using a side-channel based on distributed source coding techniques.
Shokrollahi, Mohammad Amin; Luby, Michael, Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes.
Parekh, Nileshkumar J.; Chandhok, Ravinder Paul (Rob); O'Keefe, Michael; Chen, An Mei; Walker, Gordon Kent, Methods and apparatus for providing content information to content servers.
Horn,Gavin; Luby,Michael G.; Rasmussen,Jens; Knudsgaard,Per; Lassen,Soren, Methods and apparatus for scheduling, serving, receiving media-on demand for clients, servers arranged according to constraints on resources.
Asamizuya Noboru,JPX ; Ebihara Norio,JPX ; Karibe Haruyuki,JPX ; Kodama Yasumasa,JPX ; Kagawa Masaaki,JPX, On-demand data transmission by dividing input data into blocks and each block into sub-blocks such that the sub-blocks a.
Aggarwal Charu Chandra ; Wolf Joel Leonard ; Yu Philip Shi-Lung, Permutation based pyramid block transmission scheme for broadcasting in video-on-demand storage systems.
Lu,Ming; Zheng,Haitao, Radio link protocol (RLP)/point-to-point protocol (PPP) design that passes corrupted data and error location information among layers in a wireless data transmission protocol.
Srikantan,Geetha; Narasimhan,Aravind; Proctor,Seth; Brittenson,Jan; Shafer,Matthew; Sergent,Jonathan S., Streaming a single media track to multiple clients.
Castagna, Pete; Randall, Dave, System and method for interference mitigation using adaptive forward error correction in a wireless RF data transmission system.
Meulemans, Michael Edward; Averbuch, Aaron; Roberts, Jason; Showman, Ken; Mohammed, Mazhar; Dadzie, Joseph G., System and method for managing and communicating software updates.
Rasmussen,Jens; Shokrollahi,Amin; Lassen,Soren; Horn,Gavin; Goyal,Vivek; Dobyns,Barry; Luby,Michael, System and method for reliably communicating the content of a live data stream.
Brewer, Tony M.; Blackmon, Harry C.; Davies, Chris; Dozier, Harold W.; McDermott, III, Thomas C.; Wallach, Steven J.; Walker, Dean E.; Yeh, Lou, System and method for router data aggregation and delivery.
Haberman, Seth; Schuler, Chester L.; van der Burgh, Abeljan; Jansen, Alex; Niemeijer, Gerrit, System and method for simultaneous broadcast for personalized messages.
Albanese Andres (Berkeley CA) Luby Michael G. (Berkeley CA) Bloemer Johannes F. (Berkeley CA) Edmonds Jeffrey A. (Berkeley CA), System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionali.
Campanella S. Joseph, System for time division multiplexing broadcast channels with R-1/2 or R-3/4 convolutional coding for satellite transmission via on-board baseband processing payload or transparent payload.
Chilvers, Henry C.; Olague, Craig Alan; Archer, Kuan Hidalgo, Systems and methods for providing remote program ordering on a user device via a web server.
McRae Daniel D. (West Melbourne FL) Clark George C. (Indialantic FL) Szuchy Nicholas C. (Melbourne Beach FL), Technique for high rate digital transmission over a dynamic dispersive channel.
Schreiber William F. (Cambridge MA) Polley Michael O. (Belmont MA), Television transmission system using spread spectrum and orthogonal frequency-division multiplex.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.