System and method for downloading content associated with optical media

Systems and methods for reducing problems and disadvantages associated with downloading content associated with optical media are disclosed. A method may include determining a size of an item of content to be downloaded. The method may also include determining a download speed of a network connection between an information handling system and a content provider and determining a fractional download size corresponding with a desired download time at the download speed of the network connection based at least on the download speed. The method may further include downloading a plurality of portions of the content from the content provider, each portion less than or substantially equal in file size than the fractional download size, wherein at least two of the plurality of portions are downloaded substantially in parallel, and combining each of the plurality of portions such that the combination is substantially similar to the item of content.

CROSS REFERENCE TO RELATED APPLICATION

This application claims priority to Indian application number 2736/CHE/2008 filed Nov. 7, 2008, and entitled “System and Method for Downloading Content Associated with Optical Media,” the contents of which is hereby incorporated by reference in its entirety.

TECHNICAL FIELD

The present disclosure relates in general to optical media, and more particularly downloading content associated with optical media.

BACKGROUND

Information handling systems are often used in the entertainment industry. As a specific example, optical media has often been used to store audio and visual information. For instance, Compact Disc (CD) optical media, which interact with an infrared laser to store and read information, are commonly used to store music and/or other data. Similarly, Digital Versatile Disc (DVD) optical media, which interact with a red laser to store and read information, are commonly used to store movies for commercial sale, as well as other data. Recently, a new type of optical medium has been developed that uses a blue laser to read and write information, such as with the Blu-ray Disc (BD) or High Definition DVD specifications, for example. One advantage of blue laser media is that the smaller wavelength of the blue laser compared with the infrared and red lasers allows greater storage density for blue laser optical media. The greater storage media provides capacity to hold feature length High Definition movies and support desirable additional features, such as functions controlled by BD-Java (BD-J) applications running in connection with a Blu-ray Disc per the Blu-ray specification.

Such additional features may include user interactivity that allows a viewer of the blue laser media to download of promotional and other content from content providers. Content downloaded in connection with the blue laser media may often be High Definition content, and thus may include a file with a very large size. Using traditional download mechanisms, a download of files associated with these additional features may take a significant amount of time, thus negatively affecting the viewer experience.

SUMMARY

In accordance with the teachings of the present disclosure, the disadvantages and problems associated with downloading content associated with optical media have been substantially reduced or eliminated.

In accordance with one embodiment of the present disclosure, a method for downloading an item of content associated with an optical medium from a content provider is provided. The method may include determining a size of an item of content to be downloaded to an information handling system from a content provider. The method may also include determining a download speed of a network connection between the information handling system and the content provider. Additionally, the method may include determining a fractional download size corresponding with a desired download time at the download speed of the network connection based at least on the download speed of the network connection. The method may further include downloading a plurality of portions of the content from the content provider, each portion less than or substantially equal in file size than the fractional download size, wherein at least two of the plurality of portions are downloaded substantially in parallel. Moreover, the method may include combining each of the plurality of portions at the information handling system such that the combination is substantially similar to the item of content.

In accordance with another embodiment of the present disclosure, an article of manufacture may include a computer readable medium and computer-executable instructions carried on the computer readable medium, the instructions readable by a processor. The instructions, when read and executed, may causing the processor to: (i) determine a size of an item of content associated with an optical medium to be downloaded to an information handling system from a content provider; (ii) determine a download speed of a network connection between the information handling system and the content provider; (iii) based at least on the download speed of the network connection, determine a fractional download size corresponding with a desired download time at the download speed of the network connection; (iv) download a plurality of portions of the content from the content provider, each portion less than or substantially equal in file size than the fractional download size, wherein at least two of the plurality of portions are downloaded substantially in parallel; and (v) combine each of the plurality of portions at the information handling system such that the combination is substantially similar to the item of content.

In accordance with a further embodiment of the present disclosure, an information handling system may include a processor, a memory communicatively coupled to the processor, and computer-executable instructions carried on a computer readable medium, the instructions readable by the one or more processors. The instructions, when read and executed, may causing the processor to: (i) determine a size of an item of content associated with an optical medium to be downloaded to an information handling system from a content provider; (ii) determine a download speed of a network connection between the information handling system and the content provider; (iii) based at least on the download speed of the network connection, determine a fractional download size corresponding with a desired download time at the download speed of the network connection; (iv) download a plurality of portions of the content from the content provider, each portion less than or substantially equal in file size than the fractional download size, wherein at least two of the plurality of portions are downloaded substantially in parallel; and (v) combine each of the plurality of portions at the information handling system such that the combination is substantially similar to the item of content.

Other technical advantages will be apparent to those of ordinary skill in the art in view of the following specification, claims, and drawings.

DETAILED DESCRIPTION

Preferred embodiments and their advantages are best understood by reference toFIGS. 1-3, wherein like numbers are used to indicate like and corresponding parts.

FIG. 1illustrates a block diagram of an example system100for downloading content associated with optical media. As depicted inFIG. 1, system100may comprise an information handling system102, an optical medium116, a display120, one or more audio output devices122, a network124, and a content provider126.

Information handling system102may generally be configured to read data from one or more optical media116received in optical drive108and process such data for display on display device120and/or output to audio output device(s)122. Information handling system102may also be configured to read data from and/or communicate data to content provider126via network124. In certain embodiments, information handling system102may be a computer, such as a desktop computer or portable computer (e.g., a “laptop” or “notebook”), for example. In other embodiments, information handling system102may be a optical media player, e.g. a Blu-ray Disc player or High Definition DVD player.

As depicted inFIG. 1, information handling system102may comprise a processor103, a memory104communicatively coupled to processor103, a network interface106communicatively coupled to processor103, and an optical drive108coupled to processor103and/or memory104.

Processor103may comprise any system, device, or apparatus configured to interpret and/or execute program instructions and/or process data, and may include, without limitation a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments, each processor103may interpret and/or execute program instructions and/or process data stored in memory104, optical drive108and/or another component of information handling system102.

Memory104may be communicatively coupled to processor103and may comprise any system, device, or apparatus configured to retain program instructions or data for a period of time (e.g., computer-readable media). Each memory104may comprise random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), a PCMCIA card, flash memory, magnetic storage, opto-magnetic storage, or any suitable selection and/or array of volatile or non-volatile memory that retains data after power to information handling system102is turned off.

Network interface106may be any suitable system, apparatus, or device configured to serve as an interface between information handling system102and network124. Network interface106may enable information handling system102to communicate over network124using any suitable transmission protocol and/or standard, including without limitation all transmission protocols and/or standards enumerated below with respect to the discussion of network124.

Optical drive108may be any suitable system, apparatus, or device configured to read data from and/or write data to an optical storage medium such as optical medium116, for example. In certain embodiments, optical drive108may use laser light or other electromagnetic energy to read and/or write data to an optical medium. As depicted inFIG. 1, optical drive108may include spindle assembly110, optical pick-up unit112, and download module114. Spindle assembly may be any suitable system, apparatus, or device configured to spin optical medium116proximate to optical pick-up unit112. Optical pick-up unit112may include a laser or other source of electromagnetic energy (e.g., a blue laser for interacting with BD media) which may illuminate optical medium116to read information stored on optical medium116and/or write information to optical medium116. Information read from optical medium116may be processed within optical drive108, processor103, and/or another component of information handling system102to produce audio and/or display signals (e.g., for output to display device120and/or audio output device(s)122) representing the information stored on optical medium116.

Download module114may manage downloading of content associated with optical medium116. As discussed above, some optical media may include and/or support additional features, including allowing a viewer of the optical media to download content associated with optical medium116. Download module114may be any suitable system, apparatus, or device that manages and/or facilitates the downloading of such content, as described in greater detail below. Download module114may be embodied in hardware, software, firmware, or any combination thereof. In certain embodiments, download module114may include firmware and/or software instructions configured to execute on a processing component within optical drive108, as depicted inFIG. 1. In other embodiments, download module114may include firmware and/or software instructions configured to execute on a processing component of a component of information handling system102not within optical drive108. In yet other embodiments, download module may include a program of instructions stored on optical medium116and retrieved to be executed in optical drive108, such as a BD-J application of the BD specification, for example.

Optical medium116may include any system, apparatus, or device that may retain data and/or instructions for a period of time, wherein data and/or instructions may be read from and/or written to optical medium116by use of a laser or other source of electromagnetic energy. In certain embodiments, optical medium116may include a flat, circular disc (an optical disc, such as a CD, DVD, or blue laser medium, for example) wherein data is stored in the “pits” or “bumps” in the flat surface, such that the pits may distort incident laser light.

Display device120may include any system, apparatus, or device suitable for creating graphic images and/or alphanumeric characters recognizable to a user, and may include, for example, a liquid crystal display (LCD), cathode ray tube (CRT), a plasma screen, and a digital light processor (DLP) projection monitor. In certain embodiments, display device120may include a computer monitor. In other embodiments, display device120may include a television.

Audio output device(s)122may include any system, apparatus, or device suitable for outputting sound signals generated by information handling system102, for example, music, soundtracks, and/or sounds stored on optical medium116. In certain embodiments, audio output device(s)122may include one or more speakers and an audio driver operable to control the one or more speakers. Audio output device112may include any suitable type of speaker, such as a cone or ribbon-based loudspeaker, for example. Audio output device112may comprise any audio driver or other program or device that controls the operation of a speaker. The audio driver may act as a translator between processor102and audio output device112.

Network124may be a network and/or fabric configured to communicatively couple information handling system102to content provider126. Network124may be implemented as, or may be a part of, a storage area network (SAN), personal area network (PAN), local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wireless local area network (WLAN), a virtual private network (VPN), an intranet, the Internet or any other appropriate architecture or system that facilitates the communication of signals, data and/or messages (generally referred to as data). Network124may transmit data using any storage and/or communication protocol, including without limitation, Fibre Channel, Frame Relay, Asynchronous Transfer Mode (ATM), Internet protocol (IP), other packet-based protocol, small computer system interface (SCSI), Internet SCSI (iSCSI), Serial Attached SCSI (SAS) or any other transport that operates with the SCSI protocol, advanced technology attachment (ATA), serial ATA (SATA), advanced technology attachment packet interface (ATAPI), serial storage architecture (SSA), integrated drive electronics (IDE), and/or any combination thereof. Network124and its various components may be implemented using hardware, software, or any combination thereof.

Content provider126may include any system, apparatus, or device operable to communicate with information handling system102via network124in order to deliver content to information handling system102for viewing by a user thereof. For example, content provider126may include a website, FTP site, and/or similar site that may communicate content to information handling system102. Content communicated by content provider126may include, without limitation, audio, video (e.g., high-definition video), data, games, and/or any other file or collection of files.

FIG. 2illustrates an overview of the application structure200of a BD-ROM in accordance with the Blu-ray specification. Application structure200or an application or data structure similar thereto, may be representative of applications and/or data stored on an optical medium, e.g. optical medium116. Accordingly, the discussion of application structure200is exemplary, and any suitable application structure may be used to implement the methods and systems described herein.

As shown inFIG. 2, application structure200may include one or movie objects202and Blu-ray Disc Java (BD-J) module204. Each of movie objects202may include executable instructions or navigation commands. For example, navigation commands in a movie object202may launch video and/or audio playback, another movie object202, a BD-J object206, and/or access other data or applications stored on a BD-ROM.

BD-J module204may include one or more executable programs operable to implement interactive features, advanced content, and/or other features associated with an optical medium116. As depicted inFIG. 2, BD-J module204may include one or more BD-J objects206and an application manager208. Each BD-J object206may include a table of Java applications or command programs known as “xlets” that may trigger playlist playback, other movie objects202, BD-J objects206, and/or Java programs. Each xlet may be controlled and/or managed by application manager208(e.g., application manager208may maintain a table, database, or other data structure used to keep track of executed xlets).

AlthoughFIG. 2depicts application structure200including particular elements, application structure200may include any other suitable components, in accordance with the BD-ROM specification or other suitable specification. In addition, BD-ROM application structure200depicted inFIG. 2may be applied to embodiments set forth herein for purposes of exposition, and any suitable optical medium application structure may be applied to embodiments set forth herein.

In certain embodiments, download module114of system100may include BD-J module204, one or more components thereof, or a module of executable instructions similar to BD-J module204. For example, a BD-J module204or one or more components thereof may load from an optical medium116placed in optical drive108and perform one or more of the functions of download module114, as described in greater detail herein.

FIG. 3illustrates a block diagram of an example method300for downloading content associated with optical media, in accordance with certain embodiments of the present disclosure.

According to one embodiment, method300preferably begins at step302. As noted above, teachings of the present disclosure may be implemented in a variety of configurations of system100. As such, the preferred initialization point for method300and the order of the steps302-318comprising method300may depend on the implementation chosen.

At step302, optical medium116may be loaded into optical drive108. For example, a user of information handling system may manually load optical medium116into optical drive108. In other embodiments, optical medium116may be automatically loaded into optical drive108(e.g., from a disc magazine).

At step304, information handling system102may play optical medium116and load data and/or executable programs stored thereon in any suitable manner.

At step306, a request may be made to download an item of content associated with optical medium116from content provider126. For example, such request may be made by a user of information handling system102by selecting a menu option after optical medium116has started playing (e.g., the user's selection of additional and/or advanced features associated with optical medium116). In other embodiments, such request may be made automatically, as part of automatic playing of optical medium116.

At step308, download module114and/or another component of information handling system102may determine the total size of the content to be downloaded from content provider126. Such determination may be made in any suitable manner, including without limitation, a BD-J xlet and/or other set of executable instructions configured to request from content provider126the size of the content to be downloaded.

At step310, download module114and/or another component of information handling system102may determine the capacity (e.g., download speed) of the network connection between information handling system102and content provider126. Such determination may be made in any suitable manner, including without limitation, a BD-J xlet and/or other set of executable instructions (e.g., Internet Speed Test) configured to request from content provider126the size of the content to be downloaded.

At step312, download module114and/or another component of information handling system102may, based at least on the capacity of the network connection, determine a fractional download size. Such determination may be made in any suitable manner, including without limitation, a BD-J xlet and/or other set of executable instructions configured to determine a fractional download size in accordance with the present disclosure. The determined fractional download size may be such that a file of the fractional download size (or smaller) would be expected to download within a desired download time, given the capacity of the network connection. For example, if the capacity of the network connection is determined to be a 512 kilobit-per-second (Kbps) connection, and it is desired that downloads not exceed two minutes, download module114and/or another component of information handling system may determine the fractional download size to be 7.5 megabytes (MB) or less.

The desired download time may be determined in any suitable manner. For example, the desired download time may be predetermined by the author and/or creator of optical medium116and/or stored as data thereon that may be read during execution of method300. An another example, the desired download time may be determined automatically by information handling system102, one or more of its components, and/or an operating system executing thereon based on one or more parameters and/or physical properties associated with information handling system102and/or its individual components. As a further example, the desired download time may be determined by a user of information handling system102, e.g., in accordance with personal preference.

At step314, download module114and/or another component of information handling system102may issue a plurality of fractional download requests, each fractional download request including a request to download a respective portion of the content to be downloaded such that each portion is less than or approximately equal in file size to the determined fractional download size. For example, if the content to be downloaded has a size of 300 MB, and the determined fractional download size is 100 MB, download module114and/or another component of information handling system102may issue three fractional download requests, wherein each request includes a request to download a respective 100 MB-portion of the content to be downloaded. As another example, if the content to be downloaded has a size of 360 MB, and the determined fractional download size is 100 MB, download module114and/or another component of information handling system102may issue four fractional download requests, wherein each request includes a request to download a respective 90 MB-portion of the content to be downloaded. Although the specific examples set forth above contemplate that each fractional download request includes a request to download an identically-sized or similarly-sized portion, the sizes of the content portions may be differently-sized. In certain embodiments, one or more of the portions may download substantially in parallel.

In BD-J embodiments of download module114, each of the fractional download requests may include an xlet, wherein an application manager (e.g., application manager208) manages (e.g., via entries in an application management table) the execution of the individual fractional download xlets. For example, application manager208may maintain the completion status of each fractional download request xlet and/or the portion of content associated with each fractional download request xlet.

At step316, download module114and/or another component of information handling system102may download each portion of content from content provider126. In some embodiments, one or more portions of content may be downloaded substantially in parallel. Such download may occur via one or more HTTP connections, FTP connections, or any other suitable connection. Downloaded content may be stored in one or more components of information handling system102, including without limitation optical media116.

At step318, after all portions of content associated with the fractional download requests have completed, download module114and/or another component of information handling system102may appropriately combine the individual portions to store (e.g., in memory103and/or another component of information handling system102) the content for use by information handling system102. IN BD-J implementations, such combination and/or storing may be made in any suitable manner, including without limitation, a BD-J xlet and/or other set of executable instructions configured to reassemble the individual portions after such portions have completed downloading.

AlthoughFIG. 3discloses a particular number of steps to be taken with respect to method300, method300may be executed with greater or lesser steps than those depicted inFIG. 3. In addition, althoughFIG. 3discloses a certain order of steps to be taken with respect to method300, the steps comprising method300may be completed in any suitable order.

Method300may be implemented using system100or any other system operable to implement method300. In certain embodiments, method300may be implemented partially or fully in software embodied in computer-readable media.

Using the methods and systems disclosed herein, problems associated with conventional approaches to downloading content associated with an optical medium may be improved, reduced, or eliminated. For example, methods and systems disclosed herein may leverage functionality present in an optical medium to facilitate faster download of content by dividing an item of content into multiple portions or threads and downloading such portions in parallel, thus potentially reducing download times and potentially improving user experience.

Although the present disclosure has been described in detail, it should be understood that various changes, substitutions, and alterations can be made hereto without departing from the spirit and the scope of the disclosure as defined by the appended claims.