English:
[0003] FIG. 2 is a block diagram that illustrates, in detail, one embodiment of the hardware components shown in FIG. 1.
[0004] FIG. 3 is a block diagram that illustrates, in detail, one embodiment of the hardware components shown in FIG. 1.
[0005] FIG. 4 is a flow diagram that illustrates one embodiment of a method performed by the multimedia content delivery system shown in FIG. 1.
[0007] FIG. 1 is a network diagram that illustrates one embodiment of the hardware components of a multimedia content delivery system. The multimedia content delivery system includes a content server 110, network 120, and a client device. In one embodiment, the client device is a mobile device 130 connected via a wireless connection, where the mobile device 130 is a general-purpose computing device such as a mobile phone, smartphone, tablet computer, gaming console, handheld device, or the like. In another embodiment, the client device is a subscriber device 140 connected to a display device 142, where the subscriber device 140 is a general-purpose computing device such as a set top box, personal computer, entertainment device, digital media server, or the like. The content server 110 is a general-purpose server computer that provides access to a content stream 112. The client device (e.g., the mobile device 130, or subscriber device 140) connects to the content server 110 via the network 120 to access and playback the content stream 112 using a media player application. The content stream 112 includes live and recorded streams of digital audio and audio/video multimedia content streams. The multimedia content delivery system shown in FIG. 1 may include any number of interconnected content server 110, network 120, and client device (e.g., the mobile device 130, or subscriber device 140) components.
[0008] The network 120 shown in FIG. 1, in one embodiment, is a public Internet Protocol (IP) communication network or wide area network (WAN) that connects the client device (e.g., the mobile device 130, or subscriber device 140) to the content server 110. The multimedia content delivery system shown in FIG. 1 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 multimedia content delivery system shown in FIG. 1 contemplates comparable network architectures and protocols such as Ethernet and transmission control protocol.
[0009] FIG. 2 is a block diagram that illustrates, in detail, one embodiment of the hardware components shown in FIG. 1. The mobile device 130 shown in FIG. 2 is a general-purpose computer. A bus 210 is a communication medium connecting a processor 220, data storage device 230, communication interface 240, memory 250, and display 260. Even though the mobile device 130 shown in FIG. 2 includes a single processor 210, one skilled in the art will understand that the mobile device 130 may include a number of processors 210 to improve the speed and efficiency of the mobile device 130. In various embodiments, the data storage device 230 is a serial ATA (SATA) hard disk drive, optical drive, small computer system interface (SCSI) disk, flash memory, or the like. The communication interface 240 connects the mobile device 130 to the network 120, allowing for two-way communication of data and content. In various embodiments, the memory 250 is random access memory (RAM), dynamic RAM (DRAM), non-volatile computer memory, flash memory, or the like.
[0010] The processor 210 in the mobile device 130 shown in FIG. 2 performs the disclosed methods by executing sequences of operational instructions that comprise each computer program resident in, or operative on, the memory 250. The reader should understand that the memory 250 may include operating system, administrative, and database programs that support the programs disclosed in this application. In one embodiment, the configuration of the memory 250 of the mobile device 130 includes a media player program 252, pre-fetch program 254, and streaming buffers 256. The media player program 252, pre-fetch program 254, and streaming buffers 256 operate to perform the methods disclosed in the exemplary embodiments depicted in FIG. 4 and FIG. 5. When the processor 210 performs the disclosed method, it stores intermediate results in the memory 250 or data storage device 230. In another embodiment, the processor 210 may swap these programs, or portions thereof, in and out of the memory 250 as needed, and thus may include fewer than all of these programs at any one time.
[0011] FIG. 3 is a block diagram that illustrates, in detail, one embodiment of the hardware components shown in FIG. 1. The subscriber device 140 shown in FIG. 3, similar to the mobile device 130, is a general-purpose computer. A bus 310 is a communication medium connecting a processor 320, data storage device 330, communication interface 340, and memory 350. Even though the subscriber device 140 shown in FIG. 3 includes a single processor 310, one skilled in the art will understand that the subscriber device 140 may include a number of processors 310 to improve the speed and efficiency of the subscriber device 140. In various embodiments, the data storage device 330 is a serial ATA (SATA) hard disk drive, optical drive, small computer system interface (SCSI) disk, flash memory, or the like. The communication interface 340 connects the subscriber device 140 to the network 120 and a display device 142, allowing for two-way communication of data and content. In various embodiments, the memory 250 is random access memory (RAM), dynamic RAM (DRAM), non-volatile computer memory, flash memory, or the like.
[0012] The processor 310 in the subscriber device 140 shown in FIG. 3 performs the disclosed methods by executing sequences of operational instructions that comprise each computer program resident in, or operative on, the memory 350. The reader should understand that the memory 350 may include operating system, administrative, and database programs that support the programs disclosed in this application. In one embodiment, the configuration of the memory 350 of the subscriber device 140 includes a media player program 352, pre-fetch program 354, and streaming buffers 356. The media player program 352, pre-fetch program 354, and streaming buffers 356 operate to perform the methods disclosed in the exemplary embodiments depicted in FIG. 4 and FIG. 5. When the processor 310 performs the disclosed method, it stores intermediate results in the memory 350 or data storage device 330. In another embodiment, the processor 310 may swap these programs, or portions thereof, in and out of the memory 350 as needed, and thus may include fewer than all of these programs at any one time.
[0013] FIG. 4 is a flow diagram that illustrates one embodiment of a method performed by the multimedia content delivery system shown in FIG. 1. One skilled in the art will understand that any client device, including the mobile device 130 and subscriber device 140, can perform the process 400 shown in FIG. 4. The process 400, with reference to FIG. 1 and FIG. 2, begins when the media play program 252 displays content items on the display 260 of the mobile device 130 (step 410). The embodiment shown in FIG. 2 illustrates four content items 260A, 260B, 260C, 260D on the display 260. Each content item 260 A, 260B, 260C, 260D shown on the display 260 includes a link to a content stream on a content server, such as the content stream 112 on the content server 110 shown in FIG. 1. The pre-fetch program 254 determines an amount of available bandwidth on a data connection from the mobile device 130 to the network 120 (step 420), and associates a pre-fetch buffer 257A, 257B, 257C,
[0014] The process 400 shown in FIG. 4 processes each content item 260A, 260B, 260C, 260D on the display 260 (step 440). For each content item 260 A, 260B, 260C, 260D on the display 260 (step 440, N branch), the process 400 obtains a measurement that is based on a condition relative to the linked content stream (step 450). In one embodiment, the condition relative to the linked content stream is a file format for the linked content stream (e.g., MPEG, MPEG-I, MPEG-II, MP3, MP4, WMV, AVI, FLY, MKV, SWF, 3GP, 3G2, 3GPP2, or the like). In another embodiment, the condition relative to the linked content stream is a video resolution of the linked content stream (e.g., 720P, 1080i, 1080P, or the like). In yet another embodiment, the condition relative to the linked content stream is an amount of available bandwidth on a data connection from the network 120 to the content server 110 hosting the content stream 112. The process 400 calculates a size for the pre-fetch buffer 257A, 257B, 257C, 257D for each content item 260 A, 260B, 260C, 260D on the display 260 based on the previously-determined amount of available bandwidth on the mobile device and the measurement based on a condition relative to the linked content stream (step 460). Then, for each content item 260 A, 260B, 260C, 260D on the display 260, the process 400 allocates memory in the mobile device 130 for the pre-fetch buffer 257A, 257B, 257C, 257D and streaming buffer 258 A, 258B, 258C, 258D (step 470), and initiates a download of a first portion of the linked content stream to the pre-fetch buffer 257A, 257B, 257C, 257D (step 480) When all of the content items 260A, 260B, 260C, 260D on the display 260 have been processed (step 440, Y branch), the process 400 is available to play the linked content stream associated with a selected content item (step 490).
[0015] The process 400 illustrated in FIG. 4 and FIG. 5 pre-fetches a first portion of the content stream 112 to reduce the time between selection of one of the content items 260 A, 260B, 260C, 260D on the display 260 and the start of playback of the content stream 112. The process 400 determines a length (i.e., pre-fetch buffer) of the content stream associated with each content items 260A, 260B, 260C, 260D on the display 260 based on the network conditions for the mobile device 130, and a condition relative to the content stream. Thus, the length of the pre-fetch portion is dynamically determined for each content item 260 A, 260B, 260C, 260D on the display 260 because a characteristic of the content stream 122 will be used to determine the length for each content item 260 A, 260B, 260C, 260D on the display 260. The dynamic determination of the length of the pre-fetch buffer may differ for each linked content stream. As shown in FIG. 2, the first pre-fetch buffer 257A buffers 5 seconds of the linked content stream, the second pre-fetch buffer 257B buffers 7 seconds of the linked content stream, the third pre-fetch buffer 257C buffers 4 seconds of the linked content stream, and the fourth pre-fetch buffer 257D buffers 9 seconds of the linked content stream.
[0016] FIG. 5 is a flow diagram that illustrates, in detail, one embodiment of the method shown in FIG. 4. In particular, FIG. 5 illustrates, in detail, one embodiment of the method shown in FIG. 4 for playing the linked content stream associated with a selected content item (step 490). The media play program 252 receives a user selection that identifies a selected content item of the content items 260A, 260B, 260C, 260D on the display 260 (step 510). In one embodiment, the user selects one of the content items 260A, 260B, 260C, 260D on the display 260 by clicking an icon on a touch screen. The pre-fetch program 254 plays the first portion of the linked content stream associated with the selected content item from the pre-fetch buffer 257A, 257B, 257C, 257D associated with the selected content item (step 520). In one embodiment, the pre-fetch program 254 simultaneously initiates a download of a second portion of the linked content stream associated with the selected content item to the streaming buffer 258A, 258B, 258C, 258D associated with the selected content item (step 530). The pre-fetch program 254 then plays the second portion of the linked content stream associated with the selected content item from the streaming buffer 258A, 258B, 258C, 258D associated with the selected content item when the playing of the first content end (step 540). The playing of the second portion of the linked content stream continues as a conventional solution for streaming a content stream.
[0017] Although the disclosed embodiments describe a fully functioning method and computing device for pre-fetching content streams to reduce the time between user selection and the start of playback, the reader should understand that other equivalent embodiments exist. Since numerous modifications and variations will occur to those reviewing this disclosure, the method and computing device for prefetching content streams to reduce the time between user selection and the start of playback 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.

中文:
[0003]图2是详细图示图1中所示的硬件组件的一个实施例的框图。
[0004]图3是详细图示图1中所示的硬件组件的一个实施例的框图。
[0005]图4是图示由图1中所示的多媒体内容传递系统执行的方法的一个实施例的流程图。
[0007]图1是图示多媒体内容传递系统的硬件组件的一个实施例的网络图。该多媒体内容传递系统包括内容服务器110、网络120、和客户端装置。在一个实施例中,客户端装置是经由无线连接而连接的移动装置130,其中,移动装置130是通用计算装置,诸如移动电话、智能电话、平板计算机、游戏控制台、或手持装置等。在另一个实施例中,该客户端装置是连接到显示装置142的订户装置140,其中,该订户装置140是通用计算装置,诸如机顶盒、个人计算机、娱乐装置、或数字媒体服务器等。内容服务器110是通用服务器计算机,该通用服务器计算机提供对于内容流112的访问。客户端装置(例如,移动装置130、或订户装置140)经由网络120连接到内容服务器110,以使用媒体播放器应用来访问和重放内容流112。内容流112包括数字音频和音频/视频多媒体内容流的直播和记录的流。图1中所示的多媒体内容传递系统可以包括任何数目的互连的内容服务器110、网络120、和客户端装置(例如,移动装置130、或订户装置140)组件。
[0008]在一个实施例中,图1中所示的网络120是将客户端装置(例如,移动装置130、或订户装置140)连接到内容服务器110的公共因特网协议(IP)通信网络或广域网(WAN)。图1中所示的多媒体内容传递系统预期使用可比较网络架构,包括LAN、诸如蓝牙网络的个人区域网络(PAN)、无线LAN(例如,无线保真(Wi-Fi)的网络)、对等覆盖网络、和虚拟专用网(VPN)。图1中所示的多媒体内容传递系统预期可比较网络架构和诸如以太网和传输控制协议的协议。
[0009]图2是详细图示图1中所示的硬件组件的一个实施例的框图。图2中所示的移动装置130是通用计算机。总线210是连接处理器220、数据储存装置230、通信接口240、存储器250和显示器260的通信介质。即使图2中所示的移动装置130包括单个处理器210,本领域内的技术人员也将明白,移动装置130可以包括多个处理器210,以改善移动装置130的速度和效率。在各种实施例中,数据储存装置230是串行ATA(SATA)硬盘驱动器、光驱、小计算机系统接口(SCSI)盘或快闪存储器等。通信接口240将移动装置130连接到网络120,允许数据和内容的双向通信。在各种实施例中,存储器250是随机存取存储器(RAM)、动态RAM(DRAM)、非易失性计算机存储器、或快闪存储器等。
[0010]图2中所示的移动装置130中的处理器210通过执行操作指令的序列来执行所公开的方法,该操作指令的序列包括在存储器250中驻留或在存储器250上操作的每一个计算机程序。读者应当明白,存储器250可以包括操作系统、支持在本申请中公开的程序的管理和数据库程序。在一个实施例中,移动装置130的存储器250的配置包括媒体播放器程序252、预取程序254、和流送缓冲器256。媒体播放器程序252、预取程序254、和流送缓冲器256操作成执行图4和图5中描述的示例性实施例中公开的方法。当处理器210执行所公开的方法时,它在存储器250或数据储存装置230中存储中间结果。在另一个实施例中,处理器210可以根据需要将这些程序或其部分换入和换出存储器250,并且因此,可以在任何一个时间包括比全部更少的这些程序。
[0011]图3是详细图示图1中所示的硬件组件的一个实施例的框图。与移动装置130类似,图3中所示的订户装置140是通用计算机。总线310是连接处理器320、数据储存装置330、通信接口340、和存储器350的通信介质。即使图3中所示的订户装置140包括单个处理器310,本领域内的技术人员也将明白,订户装置140可以包括多个处理器310,以改善订户装置140的速度和效率。在各种实施例中,数据储存装置330是串行ATA(SATA)硬盘驱动器、光驱、小计算机系统接口(SCSI)盘、或快闪存储器等。通信接口340将订户装置140连接到网络120和显示装置142,允许数据和内容的双向通信。在各种实施例中,存储器250是随机存取存储器(RAM)、动态RAM(DRAM)、非易失性计算机存储器、或快闪存储器等。
[0012]图3中所示的订户装置140中的处理器310通过执行操作指令的序列来执行所公开的方法,该操作指令的序列包括在存储器350中驻留或在存储器350上操作的每一个计算机程序。读者应当明白,存储器350可以包括操作系统、支持在本申请中公开的程序的管理和数据库程序。在一个实施例中,订户装置140的存储器350的配置包括媒体播放器程序352、预取程序354、和流送缓冲器356。媒体播放器程序352、预取程序354和流送缓冲器356操作成执行图4和图5中描述的示例性实施例中公开的方法。当处理器310执行所公开的方法时,它在存储器350或数据储存装置330中存储中间结果。在另一个实施例中,处理器310可以根据需要将这些程序或其部分换入和换出存储器350,并且因此,可以在任何一个时间包括比全部更少的这些程序。
[0013]图4是图示由图1中所示的多媒体内容传递系统执行的方法的一个实施例的流程图。本领域内的技术人员将明白,包括移动装置130和订户装置140的任何客户端装置可以执行图4中所示的处理400。参考图1和图2的处理400当媒体播放程序252在移动装置130的显示器260上显示内容项目时开始(步骤410)。图2中所示的实施例图示了在显示器260上的四个内容项目260A、260B、260C、260D。在显示器260上的每一个内容项目260A、260B、260C、260D包括到内容服务器上的内容流的链接,所述内容流诸如图1中所示的内容服务器110上的内容流112。预取程序254确定在从移动装置130到网络120的数据连接上的可用带宽量(步骤420),并且将预取缓冲器257A、257B、257C、257D和流送缓冲器r 258A、258B、258C、258D与每一个内容项目260A、260B、260C、260D相关联(步骤430)。
[0014]图4中所示的处理400处理在显示器260上的每一个内容项目260A、260B、260C、260D(步骤440)。对于在显示器260上的每一个内容项目260A、260B、260C、260D(步骤440,N分支),处理400获得基于与链接的内容流相关的条件的测量(步骤450)。在一个实施例中,与链接的内容流相关的条件是用于链接的内容流的文件格式(例如,MPEG、MPEG-I、MPEG-II、MP3、MP4、WMV、AVI、FLV、MKV、SWF、3GP、3G2或3GPP2等)。在另一个实施例中,与链接的内容流相关的条件是链接的内容流的视频分辨率(例如,720P、1080i或1080P等)。在又一个实施例中,与链接的内容流相关的条件是在从网络120到托管内容流112的内容服务器110的数据连接上的可用带宽量。处理400基于在移动装置上的预先确定的可用带宽量和基于与链接的内容流相关的条件的测量来计算在显示器260上的每一个内容项目260A、260B、260C、260D的预取缓冲器257A、257B、257C、257D的大小(步骤460)。然后,对于在显示器260上的每个内容项目260A、260B、260C、260D,处理400对于预取缓冲器257A、257B、257C、257D和流送缓冲器258A、258B、258C、258D分配在移动装置130中的存储器(步骤470),并且启动链接的内容流的第一部分向预取缓冲器257A、257B、257C、257D的下载(步骤480)。当已经处理了在显示器260上的所有内容项目260A、260B、260C、260D时(步骤440,Y分支),处理400可用于播放与选择的内容项目相关联的链接的内容流(步骤490)。
[0015]图4和图5中图示的处理400预取内容流112的第一部分,以减少在显示器260上的内容项目260A、260B、260C、260D之一的选择和内容流112的重放的开始期间的时间。处理400基于用于移动装置130的网络条件和与内容流相关的条件来确定与在显示器260上的每一个内容项目260A、260B、260C、260D相关联的内容流的长度(即,预取缓冲器)。因此,对于在显示器260上的每个内容项目260A、260B、260C、260D动态地确定预取部分的长度,因为内容流122的特性将用于确定在显示器260上的每个内容项目260A、260B、260C、260D的长度。预取缓冲器的长度的动态确定可以对于每一个链接的内容流而不同。如图2中所示,第一预取缓冲器257A缓冲链接的内容流的5秒,第二预取缓冲器257B缓冲链接的内容流的7秒,第三预取缓冲器257C缓冲链接的内容流的4秒,并且第四预取缓冲器257D缓冲链接的内容流的9秒。
[0016]图5是详细图示图4中所示的方法的一个实施例的流程图。具体地说,图5详细图示了图4中所示的用于播放与选择的内容项目相关联的链接的内容流(步骤490)的方法的一个实施例。媒体播放程序252接收用户选择,该用户选择识别在显示器260上的内容项目260A、260B、260C、260D的选择的内容项目(步骤510)。在一个实施例中,用户通过点击触摸屏上的图标来在显示器260上选择内容项目260A、260B、260C、260D之一。预取程序254从与选择的内容项目相关联的预取缓冲器257A、257B、257C、257D播放与选择的内容项目相关联的链接的内容流的第一部分(步骤520)。在一个实施例中,预取程序254同时启动与选择的内容项目相关联的链接的内容流的第二部分向与选择的内容项目相关联的流送缓冲器258A、258B、258C、258D的下载(步骤530)。预取程序254然后当第一内容的播放结束时,从与选择的内容项目相关联的预取缓冲器258A、258B、258C、258D播放与选择的内容项目相关联的链接的内容流的第二部分(步骤540)。链接的内容流的第二部分的播放作为用于流送内容流的传统解决方案继续。
[0017]虽然所公开的实施例描述了用于预取内容流以减少在用户选择和回放的开始之间的时间的充分作用的方法和计算装置,但是读者应当明白,存在其他等同实施例。因为查看本公开的那些人将想到多种修改和变化,所以用于预取内容流以减少在用户选择和回放的开始之间的时间的方法和计算装置不限于所示出和公开的精确的构造和操作。因此,本公开意图所有适当的修改和等同内容落在权利要求的范围内。