Media device with intelligent cache utilization

Abstract
A portable media device and a method for operating a portable media device are disclosed. According to one aspect, a battery-powered portable media device can manage use of a mass storage device to efficiently utilize battery power. By providing a cache memory and loading the cache memory so as to provide skip support, battery power for the portable media device can be conserved (i.e., efficiently consumed). According to another aspect, a portable media device can operate efficiently in a seek mode. The seek mode is an operational mode of the portable media device in which the portable media device automatically scans through media items to assist a user in selecting a desired one of the media items.
Description
BACKGROUND OF THE INVENTION

1. Field of the Invention


The present invention relates to media devices and, more particularly, to playing of media on media devices.


2. Description of the Related Art


Media players are becoming more popular these days. Of particular popularity are portable media players such as MP3 players or DVD players. Media players operate to play media items for their user that are stored within the media players. The media items are most commonly audio items (e.g., songs) but could also be video items (e.g., DVDs). Typically, an MP3 player will store various audio items internally on a storage disk. When the user makes a selection to play one of the stored audio items, the audio item must first be loaded into semiconductor memory (i.e., Random-Access Memory) before the audio item begins to be played. The delay in reading the rather large file for the audio item is unsatisfactory to users who are anxious to hear the audio item they have already selected to be played. Recently, advancements in MP3 players have enabled some MP3 players to begin playing an audio item before being completely loaded into semiconductor memory. See, for example, U.S. Pat. No. 6,799,226.


Whenever a media item to be played is not stored within the semiconductor memory, the storage disk must be accessed. Unfortunately, storage disks are rather costly in terms of power consumption for small, battery-powered MP3 players. Accordingly, there is a need for improved techniques to reduce the need to access the storage disks of media players.


SUMMARY OF THE INVENTION

Broadly speaking, the invention relates to a portable media device and a method for operating a portable media device. According to one aspect, a battery-powered portable media device can manage use of a mass storage device to efficiently utilize battery power. By providing a cache memory and loading the cache memory so as to provide skip support, battery power for the portable media device can be conserved (i.e., efficiently consumed). According to another aspect, a portable media device can operate efficiently in a seek mode. The seek mode is an operational mode of the portable media device in which the portable media device automatically scans through media items to assist a user in selecting a desired one of the media items.


The invention can be implemented in numerous ways, including as a method, system, device, apparatus, or computer readable medium. Several embodiments of the invention are discussed below.


As a method for operating a media device having a cache memory as well as a disk drive for storage of media data for media items, one embodiment of the invention includes at least the operations of: receiving a selection of a particular media item to be presented by the media device, the particular media item being one of a plurality of media items organized in a sequential list; loading, in response to the selection, at least a portion of the media data for the particular media item retrieved from the disk storage to the cache memory; loading, in response to the selection, initial portions of media data for a plurality of sequentially adjacent media items from the sequential list with respect to the particular media item; and thereafter loading remaining portions of media data for a subset of the plurality of the sequentially adjacent media items from the sequential list.


As a method for operating a media device having a cache memory as well as a disk drive for storage of media data for media items, another embodiment of the invention includes at least the operations of: receiving a selection of a particular media item to be presented by the media device, the particular media item being one of a plurality of media items organized in a sequential list; loading, in response to the selection, at least a portion of the media data for the particular media item retrieved from the disk storage to the cache memory; loading, in response to the selection, complete media data for a plurality of sequentially adjacent media items from the sequential list with respect to the particular media item; and loading, in response to the selection, only initial media data for a plurality of other sequentially adjacent media items from the sequential list.


As a method for operating a media device having a first memory as well as a mass storage device for storage of media data for media items, one embodiment of the invention includes at least the operations of: receiving a user play selection for a selected media item from the media items; determining an amount or degree of skip support to be provided by the media device; determining media data to be stored in the first memory based on the user play selection and the amount or degree of skip support; and loading the determined media data into the first memory from the mass storage device.


As a method for operating a media device having a cache memory as well as a disk drive for storage of media data for media items, yet another embodiment of the invention includes at least the operations of: receiving a user play selection for a selected media item from the media items; determining whether media data for the selected media item is contained in the cache memory; when it is determined that the media data for the selected media item is not contained in the cache memory, determining a media data set to be stored in the cache memory, and loading the media data set into the cache memory; retrieving the media data for the selected media item from the cache memory; initiating playing of the retrieved media data; receiving a user skip selection for another media item from the media items; determining whether media data for the another media item is contained in the cache memory; when it is determined that the media data for the another media item is not contained in the cache memory, determining another media data set to be stored in the cache memory, and loading the another media data set into the cache memory; retrieving the media data for the another media item from the cache memory; and initiating playing of the retrieved media data.


As a computer readable medium including at least computer program code for operating a media device having a first memory as well as a mass storage device for storage of media data for media items, one embodiment of the invention includes at least: computer program code for receiving a user play selection for a selected media item from the media items; computer program code for determining an amount or degree of skip support to be provided by the media device; computer program code for determining media data to be stored in the first memory based on the user play selection and the amount or degree of skip support; and computer program code for loading the determined media data into the first memory from the mass storage device.


As a consumer electronics product, one embodiment of the invention includes at least: a storage disk that stores a plurality of media items; a user input device that enables a user of the consumer electronics product to at least select a particular media item from the plurality of media items; a cache memory capable of storing at least one of the media items; and a processor operatively connected to the storage disk, the user input device and the cache memory. The processor causes the cache memory to support a series of skip selections by the user via the user input device. In supporting the skip selection, the processor causes the cache memory to, in advance of the skip selections, store only initial portions of a plurality of media items other than the particular media item that correspond to the skip selections.


Other aspects and advantages of the invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings which illustrate, by way of example, the principles of the invention.





BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements, and in which:



FIG. 1 is a block diagram of a media player according to one embodiment of the invention.



FIG. 2 is a flow diagram of a cache loading process according to one embodiment of the invention.



FIG. 3 is a state diagram according to one embodiment of the invention.



FIG. 4A illustrates a graphical user interface menu according to one embodiment of the invention.



FIG. 4B is a diagram of a cache memory according to one embodiment of the invention.



FIG. 4C is a diagram of an exemplary table according to one embodiment of the invention.



FIG. 5 is a flow diagram of a cache loading process according to another embodiment of the invention.



FIG. 6 is a flow diagram of a cache loading process according to another embodiment of the invention.



FIG. 7A illustrates a representative graph pertaining to data storage in a cache memory according to one embodiment of the invention.



FIG. 7B illustrates a representative graph pertaining to data storage in a cache memory according to another embodiment of the invention.



FIG. 7C illustrates a representative graph pertaining to data storage in a cache memory according to still another embodiment of the invention.



FIG. 8 is a flow diagram of play processing according to one embodiment of the invention.



FIG. 9 is a flow diagram of a media data retrieval process according to one embodiment of the invention.



FIG. 10 illustrates a seek initiation process according to one embodiment of the invention.





DETAILED DESCRIPTION OF THE INVENTION

The invention relates to a portable media device and a method for operating the portable media device. According to one aspect, a battery-powered portable media device can manage use of a mass storage device to efficiently utilize battery power. By providing a cache memory and loading the cache memory so as to provide skip support, battery power for the portable media device can be conserved (i.e., efficiently consumed). According to another aspect, a portable media device can operate efficiently in a seek mode. The seek mode is an operational mode of the portable media device in which the portable media device automatically scans through media items to assist a user in selecting a desired one of the media items.


Embodiments of this aspect of the invention are discussed below with reference to FIGS. 1-10. However, those skilled in the art will readily appreciate that the detailed description given herein with respect to these figures is for explanatory purposes as the invention extends beyond these limited embodiments.


According to one aspect, a portable media device can manage use of a mass storage device to efficiently utilize battery power. By providing a cache memory and loading the cache memory so as to provide skip support, battery power for the portable media device can be conserved, such as during successive skip operations.



FIG. 1 is a block diagram of a media player 100 according to one embodiment of the invention. The media player 100 includes a processor 102 that pertains to a microprocessor or controller for controlling the overall operation of the media player 100. The media player 100 stores media data pertaining to media items in a file system 104. The file system 104 is, typically, a mass storage device, such as a storage disk or a plurality of disks. The file system 104 typically provides high capacity storage capability for the media player 100. The file system 104 can store not only media data but also non-media data (e.g., when operated in a disk mode). However, since the access time to the file system 104 is relatively slow, the media player 100 can also include a cache 106 (cache memory). The cache 106 is, for example, Random-Access Memory (RAM) provided by semiconductor memory. The relative access time to the cache 106 is substantially shorter than for the file system 104. However, the cache 106 does not have the large storage capacity of the file system 104. Further, the file system 104, when active, consumes substantially more power than does the cache 106. Since the media player 100 is normally a portable media player that is powered by a battery (not shown), power consumption is a general concern.


The media player 100 also includes a RAM 120 and a Read-Only Memory (ROM) 122. The ROM 122 can store programs, utilities or processes to be executed in a non-volatile manner. The ROM 122 can be implemented such that it is re-programmable, e.g., using EEPROM or FLASH technologies. The RAM 120 provides volatile data storage, such as for the cache 106.


The media player 100 also includes a user input device 108 that allows a user of the media player 100 to interact with the media player 100. For example, the user input device 108 can take a variety of forms, such as a button, keypad, dial, etc. Still further, the media player 100 includes a display 110 (screen display) that can be controlled by the processor 102 to display information to the user. A data bus 111 can facilitate data transfer between at least the file system 104, the cache 106, the processor 102, and the CODEC 112.


In one embodiment, the media player 100 serves to store a plurality of media items (e.g., songs) in the file system 104. When a user desires to have the media player 100 play a particular media item, a list of available media items can be displayed on the display 110. Then, using the user input device 108, a user can select one of the available media items. The processor 102, upon receiving a selection of a particular media item, the media data (e.g., audio file) for the particular media item is access by the processor 102 and then supplied to a coder/decoder (CODEC) 112. The CODEC 112 then produces analog output signals for a speaker 114. The speaker 114 can be a speaker internal to the media player 100 or external to the media player 100. For example, headphones or earphones that connect to the media player 100 would be considered an external speaker.


The media player 100 also includes a network/bus interface 116 that couples to a data link 118. The data link 118 allows the media player 100 to couple to a host computer. The data link 118 can be provided over a wired connection or a wireless connection. In the case of a wireless connection, the network/bus interface 116 can include a wireless transceiver.


Moreover, the processor 102 includes a media access manger 124. The media access manager 124 manages access to the plurality of media items via the file system 104 or the cache 106. More specifically, among other things, the media access manager 124 determines the appropriate media data to be stored in the cache 106. For example, based on user selection, user behavior or predetermined criteria, the media access manager 124 determines the appropriate media data to be stored in the cache 106. When the appropriate media data resides in the cache 106, the file system 104 can be inactive (e.g., “powered-off”). Since the cache 106 consumes substantially less power than the file system 104, the media player 100 can be operated in a power efficient manner.


Although the display 110 can be used to display a graphical user interface for a user, the display 110 is not required for the media player 100.



FIG. 2 is a flow diagram of a cache loading process 200 according to one embodiment of the invention. The cache loading process 200 is performed by a media device. More particularly, the cache loading process 200 is, for example, performed by a media access manager, such as the media access manager 124 illustrated in FIG. 1, in the context of loading a cache memory, such as the cache 106 illustrated in FIG. 1.


The cache loading process 200 begins with a decision 202 that determines whether a user selection has been made. Typically, as discussed in detail below, the user can be presented with a list or menu of media items that can be selected. For example, the selection of a media item by the user can signal the media device that the user desires to have the media item presented. For example, the media device can present a media item by playing the media item or displaying the media item. When the decision 202 determines that a user selection has not been received, the cache loading process 200 awaits such a selection.


Once the cache loading process 200 determines that a user selection has been received, the cache loading process 200 continues. In other words, the cache loading process 200 is effectively invoked once a user selection has been received. In any case, following receipt of the user selection, an amount or degree of skip support to be provided is determined 204. The media device performing the cache loading process 200 serves to present media items to its user. However, the user may desire to navigate from one media item to another so as to control which of the media items is presented by the media player. The navigation from a current media item to a next media item is referred to as a skip operation in which the balance of the current media items is skipped and the next media item is presented. Skip support refers to memory resource utilization of the media device so as to facilitate efficient processing of skip operations.


The determination 206 of the amount or degree of skip support to be provided can be done in various different ways depending upon implementation. In one implementation, the amount or degree of skip support can be predetermined, such as by a designer or manufacturer of the media device. In another implementation, the amount or degree of skip support can be controlled or influenced by a user setting, such as a preference setting for the media device. In still another implementation, the amount or degree of skip support can be adapted (i.e., automatically) to user behavior, such as through use of a user history.


After the amount or degree of skip support has been determined 204, media data to be stored in a cache memory of the media device is determined 206. The determination 206 of the media data to be stored in the cache memory is based on the user selection and the amount or degree of skip support. The media data corresponds to a plurality of different media items. The amount or quantity of media data stored in a cache memory for each of the media items can be different. The media data for the plurality of media items to be stored in the cache memory can also be referred to as a media data set.


After the determined media data to be stored in the cache memory has been determined 206, the determined media data is loaded 208 into the cache memory. Here, the determined media data is typically retrieved from a disk drive of the media device and stored in the cache memory of the media device. After the determined media data has been loaded 208 into the cache memory, the cache loading process 200 ends. However, typically, once the determined media data is loaded into the cache memory, the selected media item can be presented by the media device using the media data that has been loaded into the cache memory. Also, should the user skip to one or more next adjacent media items, the required media data for such adjacent media items would at least partially be available in the cache memory. As a result, the media device can process a skip operation in an efficient manner. For example, the media device in many cases will not need to access the disk device (instead just the cache memory) to process the skip operation, thereby operating in a power efficient manner to conserve battery power. Also, having the needed media data already in the cache memory to process a skip operation, allows the media device to respond more quickly to a skip request from the user.



FIG. 3 is a state diagram 300 according to one embodiment of the invention. The state diagram 300 can represent three general operational states of a media device according to one embodiment of the invention. In particular, the state diagram 300 has initial state 302 where media items are presented. From the initial state 302, transitions to states 304 and 306 can be determined. Namely, from the initial state 302, upon receiving a user selection, the media device causes a transition 308 to the state 306 when the media data for a selected media item resides in the cache memory. At the state 306, the selected media item can be played. On the other hand, the user selection causes a transition 310 to the state 304 when the media data for the selected media item does not reside in the cache memory. Hence, at state 304, the cache memory is loaded. Following the completion of the state 304, the state machine 300 transitions 312 to the state 306 where the selected media item is played. While playing the selected media item at the state 306, a user may provide a skip request. In one instance, the skip request provides a transition 314 to the next media item, which in this case is already (at least its initial portion) present in the cache memory. As such, the next media items can be efficiently played using the media data present in the cache memory. On the other hand, when a skip request is made, and the media data for the next media item is not present in the cache memory, the state diagram 300 transitions 316 to the state 304 so that the cache memory can be loaded with the appropriate media data. Here, the disk drive or other mass storage device is activated to retrieve the appropriate media data for the cache memory. In one embodiment, some or all of the media data can be provided for purposes of skip support whereby only initial portions of certain media items are stored in the cache memory. Accordingly, by intelligently loading the cache memory, the state machine 300 provides the ability to process skip requests so that the transition 314 is utilized instead of the transition 316. The advantage of the transition 314 is that access to the disk drive is not necessary in order to reload the cache memory. As a result, power consumption by the media device is better managed so that battery life is lengthened.



FIG. 4A illustrates a graphical user interface menu 400 according to one embodiment of the invention. When the media device includes a display, a graphical user interface can be presented on the display. The graphical user interface menu 400 illustrated in FIG. 4A is an example of a basic menu (or list) that can be displayed on a display of a media device. The basic menu (or list) is normally an organized list or a sequential list. The media items within the basic menu (or list) can be songs (i.e., audio tracks) from one playlist or a plurality of playlists. The graphical user interface menu 400 depicts an organized list of six different songs. In this example, the media items are songs (i.e., audio tracks) that can be played by the media device. Using the graphical user interface menu 400, the user can interact with the media device to select one of the songs from those within the graphical user interface menu 400 to be played.



FIG. 4B is a diagram of a cache memory 420 according to one embodiment of the invention. The cache memory 420 is shown loaded with media data corresponding to a plurality of media items. In particular, the cache memory 420 includes complete media data for songs 3 through 7 as well as snippet data for a plurality of other media items. For example, the snippet data can pertain to songs 8 through 48. In one implementation, a snippet corresponds to an initial portion of media data for a media item. The data stored in the cache memory 420 is typically sequential, whereas data can be randomly accessed found from the cache memory 420.



FIG. 4C is a diagram of an exemplary table 440 according to one embodiment of the invention. The table 440 categorizes different modes of operations for a media device. In this embodiment, the media items are audio tracks, namely, songs. In particular, the first column of the table 440 pertains to modes 442, the second column pertains to full songs 444, and the third column pertains to a number of snippets 446. The modes 442 are different skip modes, including: No Skip, Medium Skip, High Skip and Scan. For example, in the No Skip mode, the cache memory is loaded with seven (7) full songs and no snippets. In the Medium Skip mode, the cache memory is loaded with six (6) full songs and twenty (20) snippets. In the High Skip mode, the cache memory is loaded with five (5) full songs and forty (40) snippets. In the Scan mode, the cache memory is loaded with no full songs and one hundred and forty (140) snippets. The data within the table 440 is merely representative; hence, it should be understood that the different modes and the corresponding number of songs or snippets can vary substantially depending upon implementation. However, the general trend provided in this exemplary table 440 indicates that in certain modes more skip support is provided so as to better manage power consumption for improved battery life as well as to provide better user responsiveness. In general, the cache memory provides skip support by reserving a portion of its storage capacity for snippets. The larger the reserved portion for skip support (i.e., snippet storage), the more snippets that can be stored in the cache memory.



FIG. 5 is a flow diagram of a cache loading process 500 according to another embodiment of the invention. The cache loading process 500 is performed by a media device. More particularly, the cache loading process 500 is, for example, performed by a media access manager, such as the media access manager 124 illustrated in FIG. 1, in the context of loading a cache memory, such as the cache 106 illustrated in FIG. 1.


The media device performing the cache loading process 500 includes a cache memory and a disk drive. The disk drive maintains storage for media data for a plurality of media items. The cache memory stores a small subset of the media data stored in the disk drive. The cache memory offers fast, low power access to the media data. The cache loading process 500 serves to intelligently load a portion of the media data from the disk drive into the cache memory.


The cache loading process 500 begins with a decision 502 that determines whether a play selection has been made. When the decision 502 determines that a play selection has not yet been made, the cache loading process 500 awaits such a selection. Once the decision 502 determines that a play selection has been made, the cache loading process 500 continues. In other words, the cache loading process 500 can be deemed to be invoked once a play selection has been made.


After the decision 502 determines that a play selection has been made, an initial portion of media data for the selected media item is loaded 504 into the cache memory. Once the initial portion of the media data for the selected media item has been loaded 504 into the cache memory (or otherwise available), play of the media data for the selected media item can be initiated 506. In addition, initial portions of media data for N sequentially adjacent media items can be loaded 508 into the cache memory. Moreover, remaining portions of media data for a subset of the N sequentially adjacent media items can also be loaded 510 into the cache memory. After the operation 510, the cache loading process 500 ends. It should be noted that the order of the operations 504 through 510 can be performed in any order.



FIG. 6 is a flow diagram of a cache loading process 600 according to another embodiment of the invention. The cache loading process 600 is performed by a media device. More particularly, the cache loading process 600 is, for example, performed by a media access manager, such as the media access manager 124 illustrated in FIG. 1, in the context of loading a cache memory, such as the cache 106 illustrated in FIG. 1.


The media device performing the cache loading process 600 includes a cache memory and a disk drive. The disk drive maintains storage for media data for a plurality of media items. The cache memory stores a small subset of the media data stored in the disk drive. The cache memory offers fast, low power access to the media data. The cache loading process 600 serves to intelligently load a portion of the media data from the disk drive into the cache memory.


The cache loading process 600 begins with a decision 602 that determines whether a media item has been selected. When the decision 602 determines that a media item has not been selected, the cache loading process 600 awaits such a selection. Once the decision 602 determines that a media item selection has been made, at least a portion of the selected media item is loaded 604 into the cache memory. In addition, complete media data for a plurality of sequentially adjacent media items is also loaded 606 into the cache memory. Here, the sequentially adjacent media items are determined with respect to the selected media item. Typically, the sequentially adjacent media items are subsequent to the selected media and in a sequential list. Furthermore, initial media data for a plurality of other sequentially adjacent media items is loaded 608 into the cache memory. Here, it is only the initial media data for the plurality of other sequentially adjacent media items that is loaded 608 into the cache memory. These initial media data portions are utilized to support playing initial portions of media items during successive skip operations. Following the operation 608, the cache loading process 600 ends. It should be noted that the order of the operations 604 through 608 can be performed in any order.



FIG. 7A illustrates a representative graph 700 pertaining to data storage in a cache memory according to one embodiment of the invention. The representative graph 700 depicts percentage of data in a cache memory along the vertical axis and particular songs along the horizontal axis. The representative graph 700 depicts a media data set stored in a cache memory. In this example, songs 3 through 7 are fully stored within the cache memory, wherein as subsequent songs, denoted snippets SN1 through SNm, are only partially stored (e.g., 2%) in the cache memory. Here, a total of m snippets are stored in the cache memory. These snippets support skip operations as discussed elsewhere herein.


Although snippets represent only small portions of the complete media data for corresponding media items, it should be understood that the size of the snippets can vary with implementation. Still further, the size of the snippets can be controlled or adaptable. For example, a user selection (e.g., user preference) could influence the size of the snippets. As another example, the size of the snippets can also adapt to user behavior. As an example, if the user of the media device tends to enter a skip request very quickly, if at all, then the size of the skip requests could be made smaller than normal. Alternatively, if the user of the media device tends to enter a skip request very slowly, if at all, then the size of the skip requests could be made larger than normal.



FIG. 7B illustrates a representative graph 720 pertaining to data storage in a cache memory according to another embodiment of the invention. More particularly, the representative chart 720 can reflect a first phase of media data storage to the cache memory, wherein the identified songs to be stored in the cache memory each have their initial portions stored in the cache memory. After the first stage of media data storage is complete, the final stage of media data storage can be performed to result in the cache memory storing media data as illustrated in the representative graph 720 illustrated in FIG. 7A.



FIG. 7C illustrates a representative graph 740 pertaining to data storage in a cache memory according to still another embodiment of the invention. In this embodiment, a first phase of media data storage to the cache memory stores the complete media data for the selected media item, namely, song 3, whereas the remaining songs to be stored in the cache memory only have their initial portions stored in the cache memory at this time. After the first stage of media data storage is complete, the final stage of media data storage can be performed to result in the cache memory storing media data as illustrated in the representative graph 720 illustrated in FIG. 7A.



FIG. 8 is a flow diagram of play processing 800 according to one embodiment of the invention. The play processing 800 is performed by a media device. More particularly, the play processing 800 is, for example, performed by a media access manager, such as the media access manager 124 illustrated in FIG. 1.


The play processing 800 initially displays 802 at least portion of a list of media items. A decision 804 then determines whether a user play selection has been made. When the decision 804 determines that a user play selection has not been made, then the play processing 800 awaits such a selection. Once the decision 804 determines that a user play selection has been made, a decision 806 determines whether the media data for the media item associated with the user play selection is already within the cache memory.


When the decision 806 determines that the required media data for the media item associated with the user play selection is not in the cache memory, then a media data set desired for storage in the cache memory is determined 808. The media data set can be determined 808 based on a variety of different criteria. The criteria can include user preference, user behavior, or be predetermined. After the media data set has been determined 808, the media data set is loaded 810 into the cache memory. Following the block 810, the play processing 800 returns to repeat the decision 806.


On the other hand, when the decision 806 determines that the required media data for the media item associated with the user play selection is already in the cache memory, the required media data is retrieved 812 from the cache memory as needed. The retrieved media data is then played 814. While the retrieved media data is being played, a user of the media device may enter a skip selection (skip request). When the decision 816 determines that a skip selection has been made, the play processing 800 returns to repeat the decision 806 to determine whether the media data for the next media item is within the cache memory. If the needed media data is already available in the cache memory, the needed media data can be retrieved 812 from the cache memory and then played 814. On the other hand, if the needed media data is not in cache memory, then operations 808 and 810 are performed to determine a new media data set and to load the new media data set into the cache memory. In this regard, to the extent that the cache memory supports the skip selection, there is no need to access a mass storage device, such as a disk drive, to retrieve the needed media data. As a result, the media device can be power efficient and very responsive to user skip selections. Additionally, it should be noted that a user may repeatedly enter a skip selection on rather short order (e.g., 30 seconds or less) and the process repeats for each skip selection.


Alternatively, when the decision 816 determines that a skip selection has not been made, a decision 818 determines whether playing of the media data is done (i.e., complete). When the decision 818 determines that the playing on the media data is not done, the play processing 800 returns to repeat the block 812 and subsequent blocks so that the remaining portion of the media item associated with the user play selection can be retrieved 812 and played 814.


Additionally, in some cases, the media device operates such that after the selected media item is completely played, a next media item of an ordered list can be automatically played. Hence, in such case, the processing for the next media item can be continued in the play processing 800 by returning to repeat the decision 806 for the next media item. In any case, when the decision 818 determines that the play processing 800 is done, the play processing 800 ends.



FIG. 9 is a flow diagram of a media data retrieval process 900 according to one embodiment of the invention. The media data retrieval process 900 is, for example, suitable for use as one embodiment for the block 810 illustrated in FIG. 8.


The media data retrieval process 900 begins with a decision 902. The decision 902 determines whether the disk drive providing mass storage for the media data pertaining to the media items is active. When the disk drive is not active, the disk drive is activated 904. When the disk drive is already active, the activation 904 of the disk drive is not required. Following the decision 902 when activation is not needed or following the activation 904 when activation is needed, a portion of the media data set is retrieved 906 from the disk drive. The portion is then loaded 908 into the cache memory. A decision 910 then determines whether there are more portions of the media data set that are to be retrieved. When the decision 910 determines that there are more portions to be retrieved, the media data retrieval process 900 returns to repeat the block 906 and subsequent blocks so that additional portions can be retrieved 906 and loaded 908. Alternatively, when the decision 910 determines that there are no more portions of the media data set the retrieved, the disk drive is inactivated 912.


According to another aspect, a media device can operate efficiently in a seek mode. The seek mode is an operational mode of the media device in which the media device automatically scans through media items in accordance with a predetermined timing. For example, a media device can present a series of media items to a user in brief fashion. In other words, the media device can allow a user to scan through a large set of media items by playing only an initial portion of each of the media items. The user can select a desired one of the media items during the seek process if so desired, whereby the selected media item could be played in its entirety.



FIG. 10 illustrates a seek initiation process 1000 according to one embodiment of the invention. The seek initiation process 1000 is performed by a media device. More particularly, the seek initiation process 1000 is, for example, performed by a media access manager, such as the media access manager 124 illustrated in FIG. 1.


The seek initiation process 1000 begins with a decision 1002 that determines whether a user seek request has been received. When the decision 1002 determines that a user seek request has not yet been received, the seek initiation process 1000 awaits such a request. Once the decision 1002 determines that a user seek request has been received, the seek initiation processing 1000 continues. In other words, the seek initiation process 1000 is effectively invoked when the user seek request is received.


When the seek initiation processing 1000 continues, a seek media data set is determined 1004. The seek media data set is the media data set that if desired to be stored in the cache memory during the seek mode. In this regard, the seek media data set is designed to facilitate efficient utilization of media device resources, including battery power, during a seek operation. For example, as noted above with respect FIG. 4C, the seek mode could be utilized such that the seek media data set does not store media data for full media items (e.g., songs), but instead in stores a large number of snippets for the media items.


After the seek media data set has been determined 1004, a decision 1006 then determines whether the seek media data set is already in the cache memory. When the decision 1006 determines that the seek media data set is not already in the cache memory, then the seek media data is loaded 1008 into the cache memory. On the other hand, when the decision 1006 determines that the seek media data set is already in the cache memory, then the block 1008 is bypassed. After the block 1008, or its being bypassed, the seek initiation processing 1000 initiates 1010 a seek operation. After the seek operation has been initiated 1010, the seek initiation processing 1000 ends. The seek operation operates to present a user with small portions of each of a large number of media items, thereby facilitating user's selection of a desired one of the media items to be presented in full.


Although the media items (or media assets) of emphasis in several of the above embodiments were audio items (e.g., audio files, such as for songs or audiobooks), the media items are not limited to audio items. For example, the media items can alternatively pertain to video items (e.g., video files or movies), or image items (e.g., photos).


The various aspects, embodiments, implementations or features of the invention can be used separately or in any combination.


The invention can be implemented by software, hardware or a combination of hardware and software. The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data which can thereafter be read by a computer system. Examples of the computer readable medium include read-only memory, random-access memory, CD-ROMs, DVDs, magnetic tape, and optical data storage devices. The computer readable medium can also be distributed over network-coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.


The advantages of the invention are numerous. Different aspects, embodiments or implementations may yield one or more of the following advantages. One advantage of the invention is that a disk storage device that stores media items within a portable media device can be used less often, thereby enhancing battery life when being battery-powered. Another advantage of the invention is that a portable media device can intelligently load a cache memory so as to efficiently support successive skip requests by a user. Still another advantage of the invention is that a portable media device can intelligently load a cache memory so as to efficiently support a seek mode where small portions of a plurality of media items are successively presented to a user.


The many features and advantages of the present invention are apparent from the written description and, thus, it is intended by the appended claims to cover all such features and advantages of the invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, the invention should not be limited to the exact construction and operation as illustrated and described. Hence, all suitable modifications and equivalents may be resorted to as falling within the scope of the invention.

Claims
  • 1. In a media device that includes a cache memory and a storage device for storage of at least a media data file corresponding to a media item, a method comprising: receiving an indication of a degree of skip support;reserving a portion of the cache memory for storage of a number of media item snippets, wherein the number of media item snippets is directly related to the degree of skip support, and wherein each media item snippet includes only a portion of the actual media data itself for a respective media item;receiving the number of media item snippets directly from the storage device;storing the number of media item snippets only in the reserved portion of the cache memory;in accordance with a media item selection by an end-user, playing the selected media item snippet directly from the cache memory;skipping to another media item snippet when a skip request is received;when the skip request is not received,downloading a remaining portion of the media data file corresponding to the played snippet directly from the storage device; andplaying the remaining portion of the media data file.
  • 2. The method as recited in claim 1, wherein the media device further includes a display screen, and wherein said method further comprises: displaying, prior to said receiving, at least a portion of a sequential list of media items on the display screen.
  • 3. The method as recited in claim 1, wherein the media items are audio recordings.
  • 4. The method as recited in claim 1, wherein a size of the media item snippet is related to end-user behavior.
  • 5. The method as recited in claim 1, wherein the number of media item snippets are stored in the reserved portion of the cache memory prior to receiving the skip request.
  • 6. The method as recited in claim 1, wherein at least one of said number of media item snippets includes only about 2% of the actual media data itself for its respective media item.
  • 7. The method as recited in claim 1, wherein the reserved portion of the cache memory also stores 100% of the actual media data for one or more media items simultaneously with the number of media item snippets.
  • 8. The method as recited in claim 1, wherein said method further comprises: playing at least a portion of the selected media item at the media device using the corresponding media data from the cache memory.
  • 9. The method as recited in claim 8, wherein said method further comprises: receiving the skip request to play a next media item while the particular media item is being played; andplaying the next media item at the media device using the corresponding media data from the cache memory.
  • 10. The method as recited in claim 9, wherein, when the complete media data for the next media item has been loaded into the cache memory, the next media item can be played using the corresponding media data exclusively retrieved from the cache memory, andwherein, when only the initial media data for the next media item has been loaded into the cache memory, the next media item can be initially played using the corresponding initial media data retrieved from the cache memory, and while the initial media data is played, the remaining media data corresponding to the next media item can be loaded into the cache memory provided there has not been another skip request during a time interval while a substantial portion of the initial media data is being played.
  • 11. The method as recited in claim 1, further comprising: determining the degree of skip support to be provided by the media device for skip operations that are expected to occur based upon previous end-user skip behavior;determining media data stored in the storage device for transfer to and storage in the cache memory based on the degree of skip support; andstoring the determined media data into the cache memory before the skip request is received.
  • 12. The method as recited in claim 11, wherein the determined media data is a media data set.
  • 13. The method as recited in claim 11, wherein the degree of skip support is dependent on at least one of a user setting, a device or manufacturer setting.
  • 14. Non-transitory computer readable medium for storing computer code executable by a processor in an autonomous media device that includes a cache memory and a storage device for storage of at least a media data file corresponding to a media item, comprising: computer program code for receiving an indication of a degree of skip support;
  • 15. The computer readable medium as recited in claim 14, wherein the degree of skip support is dependent on at least one of a user setting, a device or manufacturer setting, and a user history.
  • 16. The computer readable medium as recited in claim 14, wherein said computer readable medium further comprises: computer program code for retrieving media data for the selected media item from the first memory;computer program code for initiating playing of the retrieved media data corresponding to the selected media item;computer program code for receiving a user skip selection for another media item from the media items;computer program code for retrieving media data for the another media item from the first memory; andcomputer program code for initiating playing of the retrieved media data corresponding to the another media item.
  • 17. The computer readable medium as recited in claim 14, wherein the number of media item snippets are stored in the reserved portion of the cache memory prior to receiving the skip request.
  • 18. The computer readable medium as recited in claim 14, wherein at least one of said number of media item snippets includes only about 2% of the actual media data itself for its respective media item.
  • 19. The computer readable medium as recited in claim 14, wherein the reserved portion of the cache memory also stores 100% of the actual media data for one or more media items simultaneously with the number of media item snippets.
  • 20. A consumer electronics product, comprising: a user interface for receiving a user input event from an end-user;a cache memory;a storage device for storage of at least a media data file corresponding to a media item; anda processor arranged to:receive an indication of a degree of skip support from the user interface;reserve a portion of the cache memory for storage of a number of media item snippets, wherein the number of media item snippets is directly related to the degree of skip support, and wherein each media item snippet includes only a portion of the actual media data itself for a respective media item;store the number of media item snippets only in the reserved portion of the cache memory;play a selected media item snippet directly from the cache memory in accordance with a media item selection received from the user interface;skip to another media item snippet when a skip request is received from the user interface;download a remaining portion of the media data file corresponding to the played snippet directly from the storage device when the skip request is not received; andplay the remaining portion of the media data file.
  • 21. The consumer electronics product as recited in claim 20, wherein the plurality of media items other than the particular media item are determined by said processor based on at least one of a user setting, a device or manufacturer setting, and a user history.
  • 22. The consumer electronics product as recited in claim 20, wherein said consumer electronics product further comprises: a display screen operatively connected to said processor, said display screen displays a list of the media items.
  • 23. The consumer electronic product as recited in claim 20, wherein the number of media item snippets are stored in the reserved portion of the cache memory prior to receiving the skip request.
  • 24. The consumer electronic product as recited in claim 20, wherein at least one of said number of media item snippets includes only about 2% of the actual media data itself for its respective media item.
  • 25. The consumer electronic product as recited in claim 20, wherein the reserved portion of the cache memory also stores 100% of the actual media data for one or more media items simultaneously with the number of media item snippets.
  • 26. The consumer electronics product as recited in claim 20, wherein said consumer electronics products is a portable, battery-operated media player.
  • 27. The consumer electronics product as recited in claim 26, wherein the media player is an MP3 player, and wherein the media items include at least audio files of songs.
CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority benefit of U.S. Provisional Application No. 60/756,096, filed Jan. 3, 2006, and entitled “MEDIA DEVICE WITH INTELLIGENT CACHE UTILIZATION,” which is hereby incorporated herein by reference.

US Referenced Citations (266)
Number Name Date Kind
4090216 Constable May 1978 A
4386345 Narveson et al. May 1983 A
4451849 Fuhrer May 1984 A
4589022 Prince et al. May 1986 A
4908523 Snowden et al. Mar 1990 A
4928307 Lynn May 1990 A
4951171 Tran et al. Aug 1990 A
5185906 Brooks Feb 1993 A
5293494 Saito et al. Mar 1994 A
5379057 Clough et al. Jan 1995 A
5406305 Shimomura et al. Apr 1995 A
5559945 Beaudet et al. Sep 1996 A
5566337 Szymanski et al. Oct 1996 A
5583993 Foster et al. Dec 1996 A
5608698 Yamanoi et al. Mar 1997 A
5616876 Cluts Apr 1997 A
5617386 Choi Apr 1997 A
5670985 Cappels, Sr. et al. Sep 1997 A
5675362 Clough et al. Oct 1997 A
5684513 Decker Nov 1997 A
5710922 Alley et al. Jan 1998 A
5712949 Kato et al. Jan 1998 A
5717422 Fergason Feb 1998 A
5721949 Smith et al. Feb 1998 A
5726672 Hernandez et al. Mar 1998 A
5739451 Winksy et al. Apr 1998 A
5740143 Suetomi Apr 1998 A
5760588 Bailey Jun 1998 A
5778374 Dang et al. Jul 1998 A
5803786 McCormick Sep 1998 A
5815225 Nelson Sep 1998 A
5822288 Shinada Oct 1998 A
5835721 Donahue et al. Nov 1998 A
5835732 Kikinis et al. Nov 1998 A
5838969 Jacklin et al. Nov 1998 A
5864868 Contois Jan 1999 A
5867163 Kurtenbach Feb 1999 A
5870710 Ozawa et al. Feb 1999 A
5918303 Yamaura et al. Jun 1999 A
5920728 Hallowell et al. Jul 1999 A
5923757 Hocker et al. Jul 1999 A
5952992 Helms Sep 1999 A
6006274 Hawkins et al. Dec 1999 A
6009237 Hirabayashi et al. Dec 1999 A
6011585 Anderson Jan 2000 A
6018705 Gaudet et al. Jan 2000 A
6041023 Lakhansingh Mar 2000 A
6052654 Gaudet et al. Apr 2000 A
6108426 Stortz Aug 2000 A
6122340 Darley et al. Sep 2000 A
6158019 Squibb Dec 2000 A
6161944 Leman Dec 2000 A
6172948 Keller et al. Jan 2001 B1
6179432 Zhang et al. Jan 2001 B1
6185163 Bickford et al. Feb 2001 B1
6191939 Burnett Feb 2001 B1
6208044 Viswanadham et al. Mar 2001 B1
6216131 Liu et al. Apr 2001 B1
6217183 Shipman Apr 2001 B1
6248946 Dwek Jun 2001 B1
6295541 Bodnar et al. Sep 2001 B1
6297795 Kato et al. Oct 2001 B1
6298314 Blackadar et al. Oct 2001 B1
6332175 Birrell et al. Dec 2001 B1
6336365 Blackadar et al. Jan 2002 B1
6336727 Kim Jan 2002 B1
6341316 Kloba et al. Jan 2002 B1
6357147 Darley et al. Mar 2002 B1
6377530 Burrows Apr 2002 B1
6452610 Reinhardt et al. Sep 2002 B1
6467924 Shipman Oct 2002 B2
6493652 Ohlenbusch et al. Dec 2002 B1
6536139 Darley et al. Mar 2003 B2
6549497 Miyamoto et al. Apr 2003 B2
6560903 Darley May 2003 B1
6587403 Keller et al. Jul 2003 B1
6587404 Keller et al. Jul 2003 B1
6605038 Teller et al. Aug 2003 B1
6606281 Cowgill et al. Aug 2003 B2
6611607 Davis et al. Aug 2003 B1
6611789 Darley Aug 2003 B1
6617963 Watters et al. Sep 2003 B1
6621768 Keller et al. Sep 2003 B1
6623427 Mandigo Sep 2003 B2
6631101 Chan et al. Oct 2003 B1
6693612 Matsumoto et al. Feb 2004 B1
6731312 Robbin May 2004 B2
6760536 Amir et al. Jul 2004 B1
6762741 Weindorf Jul 2004 B2
6781611 Richard Aug 2004 B1
6794566 Pachet Sep 2004 B2
6799226 Robbin et al. Sep 2004 B1
6801964 Mahdavi Oct 2004 B1
6832373 O'Neill Dec 2004 B2
6844511 Hsu et al. Jan 2005 B1
6870529 Davis Mar 2005 B1
6871063 Schiffer Mar 2005 B1
6876947 Darley et al. Apr 2005 B1
6882955 Ohlenbusch et al. Apr 2005 B1
6886749 Chiba et al. May 2005 B2
6898550 Blackadar et al. May 2005 B1
6911971 Suzuki et al. Jun 2005 B2
6918677 Shipman Jul 2005 B2
6931377 Seya Aug 2005 B1
6934812 Robbin et al. Aug 2005 B1
6950087 Knox et al. Sep 2005 B2
7010365 Maymudes Mar 2006 B2
7028096 Lee Apr 2006 B1
7046230 Zadesky May 2006 B2
7062225 White Jun 2006 B2
7076561 Rosenberg et al. Jul 2006 B1
7084856 Huppi Aug 2006 B2
7084921 Ogawa Aug 2006 B1
7092946 Bodnar Aug 2006 B2
7124125 Cook et al. Oct 2006 B2
7131059 Obrador Oct 2006 B2
7143241 Hull Nov 2006 B2
7146437 Robbin et al. Dec 2006 B2
7171331 Vock et al. Jan 2007 B2
7191244 Jennings et al. Mar 2007 B2
7213228 Putterman May 2007 B2
7234026 Robbin et al. Jun 2007 B2
7277928 Lennon Oct 2007 B2
7301857 Shah et al. Nov 2007 B2
7356679 Le et al. Apr 2008 B1
7508535 Hart et al. Mar 2009 B2
7515431 Zadesky et al. Apr 2009 B1
7536565 Girish et al. May 2009 B2
7593782 Jobs et al. Sep 2009 B2
20010013983 Izawa et al. Aug 2001 A1
20010029178 Criss et al. Oct 2001 A1
20010037367 Iyer Nov 2001 A1
20010041021 Boyle et al. Nov 2001 A1
20010042107 Palm Nov 2001 A1
20020002413 Tokue Jan 2002 A1
20020013784 Swanson Jan 2002 A1
20020028683 Banatre et al. Mar 2002 A1
20020045961 Gibbs et al. Apr 2002 A1
20020046315 Miller et al. Apr 2002 A1
20020055934 Lipscomb et al. May 2002 A1
20020059440 Hudson et al. May 2002 A1
20020059499 Hudson May 2002 A1
20020090912 Cannon et al. Jul 2002 A1
20020116082 Gudorf Aug 2002 A1
20020116517 Hudson et al. Aug 2002 A1
20020122031 Maglio et al. Sep 2002 A1
20020123359 Wei et al. Sep 2002 A1
20020152045 Dowling et al. Oct 2002 A1
20020156833 Maurya et al. Oct 2002 A1
20020161865 Nguyen Oct 2002 A1
20020173273 Spurgat et al. Nov 2002 A1
20020189426 Hirade et al. Dec 2002 A1
20020189429 Qian et al. Dec 2002 A1
20020199043 Yin Dec 2002 A1
20030002688 Kanevsky et al. Jan 2003 A1
20030007001 Zimmerman Jan 2003 A1
20030018799 Eyal Jan 2003 A1
20030037254 Fischer et al. Feb 2003 A1
20030046434 Flanagin et al. Mar 2003 A1
20030050092 Yun Mar 2003 A1
20030074457 Kluth Apr 2003 A1
20030076301 Tsuk et al. Apr 2003 A1
20030076306 Zadesky Apr 2003 A1
20030079038 Robbin et al. Apr 2003 A1
20030095096 Robbin et al. May 2003 A1
20030097379 Ireton May 2003 A1
20030104835 Douhet Jun 2003 A1
20030127307 Liu et al. Jul 2003 A1
20030128192 van Os Jul 2003 A1
20030133694 Yeo Jul 2003 A1
20030153213 Siddiqui et al. Aug 2003 A1
20030156503 Schilling et al. Aug 2003 A1
20030167318 Robbin et al. Sep 2003 A1
20030176935 Lian et al. Sep 2003 A1
20030182100 Plastina et al. Sep 2003 A1
20030221541 Platt Dec 2003 A1
20030229490 Etter Dec 2003 A1
20030236695 Litwin, Jr. Dec 2003 A1
20040001395 Keller et al. Jan 2004 A1
20040001396 Keller et al. Jan 2004 A1
20040012556 Yong et al. Jan 2004 A1
20040019658 Plastina et al. Jan 2004 A1
20040055446 Robbin et al. Mar 2004 A1
20040066363 Yamano et al. Apr 2004 A1
20040069122 Wilson Apr 2004 A1
20040076086 Keller Apr 2004 A1
20040078383 Mercer et al. Apr 2004 A1
20040086120 Akins, III et al. May 2004 A1
20040094018 Ueshima et al. May 2004 A1
20040103411 Thayer May 2004 A1
20040125522 Chiu et al. Jul 2004 A1
20040165302 Lu Aug 2004 A1
20040177063 Weber et al. Sep 2004 A1
20040198436 Alden Oct 2004 A1
20040210628 Inkinen et al. Oct 2004 A1
20040216108 Robbin Oct 2004 A1
20040224638 Fadell et al. Nov 2004 A1
20040242224 Janik et al. Dec 2004 A1
20040246275 Yoshihara et al. Dec 2004 A1
20040255135 Kitaya et al. Dec 2004 A1
20040267825 Novak et al. Dec 2004 A1
20050015254 Beaman Jan 2005 A1
20050053365 Adams et al. Mar 2005 A1
20050060240 Popofsky Mar 2005 A1
20050060542 Risan et al. Mar 2005 A1
20050108754 Carhart et al. May 2005 A1
20050111820 Matsumi et al. May 2005 A1
20050122315 Chalk et al. Jun 2005 A1
20050123886 Hua et al. Jun 2005 A1
20050146534 Fong et al. Jul 2005 A1
20050149213 Guzak et al. Jul 2005 A1
20050149872 Fong et al. Jul 2005 A1
20050152294 Yu et al. Jul 2005 A1
20050156047 Chiba et al. Jul 2005 A1
20050160270 Goldberg et al. Jul 2005 A1
20050166153 Eytchison et al. Jul 2005 A1
20050216855 Kopra et al. Sep 2005 A1
20050218303 Poplin Oct 2005 A1
20050234983 Plastina et al. Oct 2005 A1
20050245839 Stivoric et al. Nov 2005 A1
20050246324 Paalasmaa et al. Nov 2005 A1
20050248555 Feng et al. Nov 2005 A1
20050257169 Tu Nov 2005 A1
20050259064 Sugino et al. Nov 2005 A1
20050259524 Yeh Nov 2005 A1
20050259758 Razzell Nov 2005 A1
20050270276 Sugimoto et al. Dec 2005 A1
20060013414 Shih Jan 2006 A1
20060025068 Regan et al. Feb 2006 A1
20060026424 Eto Feb 2006 A1
20060061563 Fleck Mar 2006 A1
20060068760 Hameed et al. Mar 2006 A1
20060071899 Chang et al. Apr 2006 A1
20060088228 Marriott et al. Apr 2006 A1
20060092122 Yoshihara et al. May 2006 A1
20060094409 Inselberg May 2006 A1
20060095502 Lewis et al. May 2006 A1
20060098320 Koga et al. May 2006 A1
20060135883 Jonsson et al. Jun 2006 A1
20060145053 Stevenson et al. Jul 2006 A1
20060152382 Hiltunen Jul 2006 A1
20060155914 Jobs et al. Jul 2006 A1
20060170535 Watters et al. Aug 2006 A1
20060173974 Tang Aug 2006 A1
20060190577 Yamada Aug 2006 A1
20060190980 Kikkoji et al. Aug 2006 A1
20060221057 Fux et al. Oct 2006 A1
20060221788 Lindahl et al. Oct 2006 A1
20060265503 Jones et al. Nov 2006 A1
20060272483 Honeywell Dec 2006 A1
20060277336 Lu et al. Dec 2006 A1
20070014536 Hellman Jan 2007 A1
20070028009 Robbin et al. Feb 2007 A1
20070038941 Wysocki et al. Feb 2007 A1
20070055743 Pirtle et al. Mar 2007 A1
20070061759 Klein Mar 2007 A1
20070089057 Kindig Apr 2007 A1
20070106660 Stern et al. May 2007 A1
20070124679 Jeong et al. May 2007 A1
20070129062 Pantalone et al. Jun 2007 A1
20070135225 Nieminen et al. Jun 2007 A1
20070248311 Wice et al. Oct 2007 A1
20070255163 Prineppi Nov 2007 A1
20080055228 Glen Mar 2008 A1
20080134287 Gudorf et al. Jun 2008 A1
20100077338 Matthews et al. Mar 2010 A1
Foreign Referenced Citations (68)
Number Date Country
43 34 773 Apr 1994 DE
44 45 023 Jun 1996 DE
0 127 139 May 1984 EP
0578604 Jan 1994 EP
0 757 437 Feb 1997 EP
0 813 138 Dec 1997 EP
0 863 469 Sep 1998 EP
0 917 077 May 1999 EP
0 982 732 Mar 2000 EP
1 028 425 Aug 2000 EP
1028426 Aug 2000 EP
1 076 302 Feb 2001 EP
1 213 643 Jun 2002 EP
1 289 197 Mar 2003 EP
1 503 363 Feb 2005 EP
1536612 Jun 2005 EP
1 566 743 Aug 2005 EP
1566948 Aug 2005 EP
1 372 133 Dec 2005 EP
1 686 496 Aug 2006 EP
2 370 208 Jun 2002 GB
2384399 Jul 2003 GB
2399639 May 2005 GB
59-023610 Feb 1984 JP
03-228490 Oct 1991 JP
04-243386 Aug 1992 JP
6-96520 Apr 1994 JP
8-235774 Sep 1996 JP
9-50676 Feb 1997 JP
9-259532 Oct 1997 JP
2000-90651 Mar 2000 JP
2000-224099 Aug 2000 JP
2000-285643 Oct 2000 JP
2000-299834 Oct 2000 JP
2000-311352 Nov 2000 JP
2000-339864 Dec 2000 JP
2001-236286 Aug 2001 JP
2001-312338 Nov 2001 JP
2002-076977 Mar 2002 JP
2002-175467 Jun 2002 JP
2003-188792 Jul 2003 JP
2003-259333 Sep 2003 JP
2003-319365 Nov 2003 JP
2004-021720 Jan 2004 JP
2004-219731 Aug 2004 JP
2004-220420 Aug 2004 JP
20010076508 Aug 2001 KR
WO 0133569 Jun 1995 WO
WO 9516950 Jun 1995 WO
9817032 Apr 1998 WO
WO 9928813 Jun 1999 WO
WO 0022820 Apr 2000 WO
WO 0165413 Sep 2001 WO
WO 0167753 Sep 2001 WO
WO 0225610 Mar 2002 WO
WO 03023786 Mar 2003 WO
WO 03036457 May 2003 WO
WO 03067202 Aug 2003 WO
2004061850 Jul 2004 WO
WO 2004055637 Jul 2004 WO
WO 2004084413 Sep 2004 WO
WO 2004104815 Dec 2004 WO
WO 2005031737 Apr 2005 WO
2005048644 May 2005 WO
WO 2005008505 Jul 2005 WO
2005109781 Nov 2005 WO
WO 2006040737 Apr 2006 WO
2006071364 Jun 2006 WO
Related Publications (1)
Number Date Country
20070156962 A1 Jul 2007 US
Provisional Applications (1)
Number Date Country
60756096 Jan 2006 US