Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR STORING/DELETING INTERACTIVE APPLICATIONS
Document Type and Number:
WIPO Patent Application WO/2006/018792
Kind Code:
A1
Abstract:
The present application provides a method for storing a data stream onto a storage medium, the data stream including a data object, the method comprises the following steps: firstly, the information relating to the data object is acquired; then, whether a substantially similar data object has been stored on the storage medium is checked; and finally, if a substantially similar data object has been stored on the storage medium, a sharing parameter is stored on the storage medium, the sharing parameter being used to indicate that the data object is a shared data object.

Inventors:
TAN JINGWEI (CN)
SHI JUN (CN)
GAN LIANG (CN)
Application Number:
PCT/IB2005/052644
Publication Date:
February 23, 2006
Filing Date:
August 10, 2005
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
KONINKL PHILIPS ELECTRONICS NV (NL)
TAN JINGWEI (CN)
SHI JUN (CN)
GAN LIANG (CN)
International Classes:
H04N21/4335; H04N21/434; H04N21/443; H04N21/8545; (IPC1-7): H04N5/00; H04N7/16
Domestic Patent References:
WO2001033852A12001-05-10
WO2004098185A12004-11-11
Foreign References:
US20030182567A12003-09-25
Attorney, Agent or Firm:
KONINKLIJKE PHILIPS ELECTRONICS N.V. c/o Haque (Azir Philips Electronics China, 21/F Kerry, Office Buildin, 218 Tian Mu Xi Lu Road Shanghai 0, CN)
Download PDF:
Claims:
CLAIMS:
1. A method of storing a data stream onto a storage medium, the data stream including a data object, comprising the steps of: acquiring information relating to the data object from the data stream; checking whether a substantially similar data object has been stored on the storage medium based on the acquired information; and if a substantially similar data object has been stored on the storage medium, storing a sharing parameter on the storage medium, the sharing parameter being used to indicate that the data object is a shared data object.
2. The method according to claim 1, further comprising the step of: storing the data object onto the storage medium if no substantially similar data object has been stored on the storage medium. 3. The method according to claim 1, wherein the data stream further comprising an audiovisual data, the data object is associated with the audiovisual data, the method further comprising the steps of: separating the data object from the audiovisual data; and storing the audiovisual data. 4. The method according to claim 1, wherein the data stream comprising an interactive application, and the interactive application including the data object. 5. The method according to claim 1, wherein the data object complies with the DVB MHP (Digital Video Broadcasting Multimedia Home Platform) standard. 6. A method of deleting a data stream, the data stream including a data object, the method comprising the steps of: detecting whether the data object is associated with other data stream; if the data object is associated with other data stream, processing the sharing characteristic of the data object accordingly to make the data object no more associated with the data stream to thereby delete the data stream. 7. The method according to claim 6, further comprising the step of: if the data object is not associated with other data stream, deleting the data object to thereby delete the data stream. 8. The method according to claim 6, wherein the data stream further comprising an audiovisual data, the data object being associated with the audiovisual data, the method further comprising the step of deleting the audiovisual data. 9. The method according to claim 6, wherein the data stream comprising an interactive application, the interactive application including the data object. 10. A storage apparatus for storing a data stream onto a storage medium, the data stream including a data object, the storage apparatus comprising: an acquisition means for acquiring information relating to the data object from the data stream; a checking means for checking whether a substantially similar data object has already been stored on the storage medium; and a parameter storage means for storing a sharing parameter onto the storage medium if a substantially similar data object has been stored on the storage medium, the sharing parameter being used to indicate that the data object is a shared data object. 11. The apparatus according to claim 10, further comprising a data object storage means for storing the data object onto the storage medium if no substantially similar data object has been stored on the storage medium. 1.
3. The apparatus according to claim 11, wherein the data stream further comprises an audio visual data, the data object being associated with the audiovisual data, the data object storing means is further used to store the audiovisual data, and the data object storing means including a separation means for separating the data object from the audiovisual data. 1.
4. A deletion apparatus for deleting a data stream, the data steam including a data object, the apparatus comprising: a detecting means for detecting whether the data object is associated with other data stream; and a parameter processing means for accordingly processing the sharing characteristic of the data object to indicate that the data object is no more associated with the deleted data stream to thereby delete the data stream if the data object is associated with other data stream. 1.
5. The apparatus according to claim 13, further comprising a data deleting means for deleting the data object to thereby delete the data stream if the data object is not associated with other data stream. 1.
6. The apparatus according to claim 13, wherein the data stream further comprising an audiovisual data, the data object is associated with the audiovisual data, wherein the data deletion apparatus is further used to delete the audiovisual data. 1.
7. A digital recorder for storing a data stream including a data object onto a storage medium, the digital recorder comprising: a receiver for receiving the data stream; a storage apparatus as stated in claim 10, for storing the data stream onto the storage medium; and a retrieving means for retrieving the data stream from the storage medium. 1.
8. The digital recorder according to claim 16, further comprising a deletion apparatus as stated in claim 13, for deleting the data stream stored on the storage medium. 1.
9. A computer program product for storing a data stream onto a storage medium, the data stream including a data object , the computer program product comprising: code for acquiring the information relating to the data object from the data stream; code for checking whether a substantially similar data object has already been stored on the storage medium based on the acquired information; code for storing a sharing parameter onto the storage medium if a substantially similar data object has already been stored on the storage medium, the sharing parameter is used to indicate that the data object is a shared data object; and code for storing the data object onto the storage medium if no substantially data object has already been stored on the storage medium. 19. A storage carrier including the computer program product as stated in claim 18. 20. A computer program product for deleting a data stream, the data stream including a data object, the computer program product comprising: code for detecting whether the data object is associated with other data stream; code for deleting the data object to thereby delete the data stream if the data object is not associated with other data stream; and code for accordingly processing the sharing characteristic of the data object to make the data object no more associated with the data stream to thereby delete the data stream if the data object is associated with other data stream. 21. A memory carrier including the computer program product as stated in claim 20.
Description:
METHOD AND APPARATUS FOR STORING/DELETING INTERACTIVE APPLICATIONS

BACKGROUND OF THE INVENTION The present invention relates to a method and apparatus for storing a data stream onto a storage medium, and in particular, to a method and apparatus for storing a digital program stream containing an interactive application onto a storage medium. A digital program may generally comprise an audio portion, a video portion and a data portion, wherein the data portion may contain zero to a plurality of interactive applications. As compared with the interactive applications, the audio and video portions are broadcasted to the user passively. In the DVB (Digital Video Broadcasting) standard, a digital program may include zero or a plurality of video substreams, i.e. MPEG PES (Motion Picture Experts Group Packetized Elementary Stream), zero or a plurality of audio substreams, zero or a plurality of data substreams, and service information. An extreme example of digital program is that the digital program comprises a data portion only, such as an interactive application, without any audio or video portion. The DVB MHP (Multimedia Home Platform) standard is a popular interactive digital program standard. In this standard, interactive applications are encoded in private sections in the form of modules, and are multiplexed in the data portions of a transmission stream, and are transmitted by the object carousel of the Digital Storage Media Command and Control (DSMCC). The modules transmitted by carousel can be broadcasted repeatedly. The DSMCC modules and the audio/video contents are transmitted along the broadcast channel in the same transmission stream. The DSMCC object carousel defines how and when the modules/files containing applications are transmitted along with the audio/video contents in a transmission stream. All the files are transmitted continuously and repeatedly without stopping, for example transmitted every 10 seconds, because all the files are transmitted unidirectionally, that is, from the sending terminal to the receiving means without any connection returning to the sending terminal for the receiving means to request the needed files. Interactive television terminals such as MHP terminal, for example, STB (Set Top Box ) search for the needed file during their recreation. Furthermore, the DVB MHP standard defines an AIT (Application Information Table ) in the private section for providing information associated to the applications. The AIT 's are also broadcasted repeatedly, the minimal repetition rate of each of the AIT's is 10 seconds. The European Patent Application no. 03101173.7 (filing date: 29 April 2003, inventors: Jingwei Tan, Jun Shi, Liang Gan, and Declan P. Kelly) proposed an apparatus and method for storing a data stream onto a storage medium, wherein the data stream includes an audio-visual data and at least one data object associated with the audio-visual data, and the data object is the data object of an application. The contents disclosed by this patent application are incorporated herein by reference. In the European Patent Application, the data object and the audio/visual contents in the data stream are stored separately when the data stream is stored. During the procedure of storage, whether a similar data object has been stored on that storage medium is checked first, if a similar data object has already been stored, then the data object is stored such that only one of the similar data objects is stored on the storage medium, if no similar data object has been stored on the storage medium, then the data object is stored onto the storage medium. It should be noted that what is placed emphasis upon by the European Patent Application no.03101173.7 is to resolve the following problem: how to avoid the repeated storage of the same/similar data object when a data object associated with a digital program being stored separately, so as to save the storage space. However, it has not been mentioned how the stored data object is managed.

OBJECTAND SUMMERY OF THE INVENTION It is an object of the present invention to improve the technical approach of the above mentioned patent application. The present invention provides a method of storing a data stream onto a storage medium, the data stream including a data object, the method comprising the steps of : firstly, acquiring the information relating to the data object from the data stream, then checking whether a substantially similar data object has been stored on the storage medium based on the acquired information, lastly, if a substantially similar data object has been stored on the storage medium, storing a sharing parameter on the storage medium, the sharing parameter being used to indicate that the data object is a shared data object; and storing the data object onto the storage medium if no substantially similar data object has been stored on the storage medium. The present invention provides (a method and apparatus ) for more rich, colourful and flexible management of the data object and its associated audio-visual program by means of a sharing parameter which is added to each of the shared data object. For example, the data object can be easily associated with an audio-visual data on the storage medium by adjusting the sharing parameter. The present invention further provides a method of deleting a data stream stored on a storage medium, the data stream including a data object, the method comprising the steps of : firstly, detecting whether the data object being associated with other data streams, then deleting the data object if the data object being not associated with other data streams, thereby the data stream being deleted; if the data object being associated with other data stream, the sharing characteristic of the data object being processed accordingly such that the data object being no more associated with the data stream, thereby the data stream being deleted. In an embodiment of the present invention, the sharing characteristic of a data object is implemented by a sharing parameter. The data object can be easily separated from an audio-visual data on the storage medium by adjusting the sharing parameter to make them no more being associated, thereby the mistake of erroneously deleting a data object which is still shared by other audio-visual data when the other audio/visual data that also shares the data object is deleted can be effectively avoided. The present invention further provides a storage apparatus for storing a data stream onto a storage medium, the data stream including; a data object, the storage apparatus comprising: an acquisition means for acquiring the information relating to the data object from the data stream; a checking means for checking whether a substantially similar data object has already been stored on the storage medium; a parameter storage means for storing a sharing parameter onto the storage medium if a substantially similar data object has been stored on the storage medium, the sharing parameter being used to indicate that the data object is a shared data object; and a data object storage means for storing the data object onto the storage medium if no substantially similar data object has been stored on the storage medium: The present invention further provides a deletion apparatus for deleting a data stream stored on a storage medium, the data stream including a data object, the apparatus comprising: a detecting means for detecting whether the data object is associated with other data stream; a data deleting means for deleting the data object to thereby delete the data stream if the data object is not associated with other data stream; and a sharing characteristic processing means for accordingly processing the sharing characteristic of the data object to make the data object no more associated with the data stream to thereby delete the data stream, if the data object being associated with other data stream. The present invention further provides a digital recorder for storing a data stream onto a storage medium, the data stream including a data object, the digital recorder comprising: a receiver for receiving the data stream; a storage apparatus as mentioned above for storing the data stream onto the storage medium; and a retrieving means for retrieving the data steam from the storage medium. The digital recorder may further comprise a deletion apparatus mentioned above for deleting the data stream stored on the storage medium. Other objects and advantages of the present invention will be obvious and the present invention will be more comprehensively understood with reference to the following description with reference to the accompanying figures and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS The present invention and the related advantages thereof will be further elucidated with reference to the exemplary embodiments and the attached figures, where: Fig.1 schematically shows the main components of a storage apparatus according to an embodiment of the present invention; Fig.2 shows a flowchart of storing a data stream onto a storage medium according to an embodiment of the present invention; Fig. 3 schematically shows the main components of a deletion apparatus according to another embodiment of the present invention; Fig.4 shows a flowchart of deleting a data stream stored on a storage medium according to another embodiment of the present invention; and Fig.5 schematically shows a digital recorder according to still another embodiment of the present invention. Corresponding features throughout the figures are denoted by the same reference numerals.

DETAILED DESCRIPTION OF THE INVENTION Fig.l schematically shows the main components of a storage apparatus according to an embodiment of the present invention. The storage apparatus may be a portion of a digital recorder such as a personal digital recorder. The storage apparatus is used to store a data stream onto a storage medium, wherein the data stream includes a data object. The data object is a data object in an interactive application. The data stream may further include an audio-visual data. The storage apparatus 100 comprises an acquisition means 110, a checking means 120, a parameter storage means 130 and a data object storage means 140. The acquisition means 110 is used to acquire the information relating to the data object. For example, the acquisition means 110 acquires the "organization id" and "application id" of the data object from the AIT of the data stream. The checking means 120 checks for whether a substantially similar data object has been stored on the storage medium based on the information acquired by the acquisition means 110. The operation procedure of the checking means is similar to the checking procedure disclosed by the European Patent Application no. 03101173,7, that is, the "organization id" and "application id" of the data object acquired by the acquisition means 110 are compared to the "organization id" and "application id" of the data object stored on the storage medium. Based on the result obtained by the checking means 120, a sharing parameter for indicating that the data object is a shared one is stored on the storage medium by the parameter storage means 130 if a substantially similar data object has already been stored on the storage medium. For example, the parameter storage means 130 comprises a counter means (not shown in the figure), the contents of the counter means indicate the sharing characteristic of the data object, for example, if the content of the counter means is 4, it indicates that the data object is shared by audio-visual data of five data streams. Based on the result obtained by the checking means 120, the data object is stored onto the storage medium by the data object storage means 140 if no substantially similar data object has been store on the storage medium. The data object storage means further comprises a separation means (not shown in the figure) which is used for separating the data object from the audio- visual data. The data object storage means is also used to store the audio-visual data. The present invention may also be implemented by an appropriately programmed computer, a computer program installed on the computer being capable of storing a data stream including a data object onto a storage medium. The computer program product comprises: code for acquiring information relating to the data object; code for checking whether a substantially similar data object having been stored on the storage medium based on the acquired information; code for storing a sharing parameter on the storage medium if a substantially similar data object having already been stored on the storage medium, the sharing parameter is used to indicate that the data object is a shared one; and code for storing the data object onto the storage medium if no substantially similar data object having been stored on the storage medium. This computer program product can be stored on a memory carrier. This portion of program code can be provided to a processor to form a machine, such that the code executed on the processor forms an machine to implement the above mentioned functionality. The operation flow chart of the apparatus 100 is shown in detail in the following Fig.2. Fig.2 is a flowchart showing the storage of a data stream onto a storage medium according to an embodiment of the present invention. The data stream is a digital program including an audio-visual data and its associated interactive application, wherein the interactive application includes a data object. The interactive application herein does not necessarily mean that the execution of the application needs the intervention of the user of the digital program, rather, the interactive application can also run by itself under certain situations. For example, certain events, such as the scoring a goal in a football game, may trigger an interactive application to give out an introduction of the player scoring the goal. In fig.2, a request for storing a data stream on a storage medium is received first, the data stream compring an audio- visual data and a data object associated therewith (step S210). The request comes from a user's input. The data object is a data object of an interactive application. The storage medium is a hard disk, but can also be a DVD + RW and the like. The data stream" is received according to the request (step S215). The data stream comes from the transmission via satellite broadcasting, land broadcasting, or cable broadcasting. Because the transmission of a data stream is a continuous process, this step is also a continuous process. Then, the audio-visual stream is acquired and stored onto the storage medium (step S220). In this embodiment, although the audio-visual data and the interactive application are multiplexed into one transmission stream, however, during storage, the audio-visual data and the interactive application are stored separately. At the same time, the associative characteristic of the audio-visual data and the interactive application, such as an AIT, is stored, for example, in a file with the file name XX_MHPinfo.txt, so as it can be used to synchronously play the audiovisual data and the interactive application during the playback of the data stream in the future. Since step S215 is a continuous process, so the acquisition/storage step is also a continous process. Then, the identification information of the data object is obtained (step S230). According to the DVB MHP standard, the identification information is obtained from the AIT, for example, the "organization id" and "application id" and etc. are obtained from the "application-identifier" of that table. Of course, in other digital program standards, the identification information can also be obtained from other positions in the transmission stream, so long as the identification information is sufficient to discriminate the data object from other data objects. Subsequently, based on the identification information, it is checked whether a substantially similar data object has been stored on the storage medium (step S240). This checking process has already been disclosed in detail by the European Application no.03101173,7, and the disclosure of that application is incorporated herein. One of the checking methods is to compare the "organization-id"' and "application-id" of the data object acquired in step S230 to the "organization id" and "application id" of the data object on the storage medium. Of course, other conditions for checking the substantial similarity are also applicable in this step, so far as the object of the present invention can be achieved by those substantial similarity checkings. Finally, based on the result of the checking in step S240, if no substantially similar data object has been stored on the storage medium, data object is stored onto the storage medium (step S250). In the example in step S220, although the audio-visual data and the interactive application are multiplexed into one transmission stream, however, the audio-visual data and the interactive application are stored separately during storage. It is therefore necessary to demultiplex the data object from the transmission stream. Based on the result of the checking in step S240, if a substantially similar data object has already been stored on the storage medium, a sharing parameter is stored onto the storage medium (step S260). The sharing parameter is used to indicate that the data object is a shared data object. The word "store" here may mean to store a new sharing parameter or mean to update an existing sharing parameter to reflect the current sharing status of the data object. Since it is not necessary to store the data object again in step S240, it is not necessary to demultiplex the data object from the transmission stream, or it can be discarded even if the data object has already been demultiplexed. Of course, this data object may also be stored onto the storage medium to replace the substantially similar data object already stored on the storage medium, so far as only one data object is being stored. An example of the sharing parameter is to attach a file of sharing characteristic for the data object, such as shareapp_X.txt, which file contains a numeral value for indicating how many audio-visual datas are sharing the data object. Each time an audio-visual data is increased to share the data object, this numeral value is incremented by one in step S260; and each time an audio-visual data is decreased to share the data object, that is, when an audio-visual data is deleted, this numeral value is decremented by one. Of course, the file of sharing characteristic may further contain the information about the titles, storage locations, and the like of all the audio-visual datas sharing the data object. It is another example of the sharing parameter to attach a common file of sharing characteristic for all the data objects on the storage medium, the sharing information of each of the data objects can be obtained from the file. Insofar as the sharing parameters are capable of reflecting the sharing conditions of the data objects and advantageous to the management of the data objects, many other embodiments of the sharing parameter are also possible. For example, a sharing parameter is stored simultaneously when the data object is stored for the first time in step 250, then the sharing parameter is adjusted when necessary in step S260. If the data stream comprises a plurality of interactive applications, then the steps S220, S230, S240, S250 or S260 form an iterative process, until the data stream reception ends in step S215. It should be noted that a digital program stream may contain no audio-visual data but one or more interactive applications only, such as a weather forecast program. In this case, the step S220 is no more necessary. Furthermore, since no audio-visual data is included in the data stream, the sharing characteristic in step S260 is pointed to the data stream rather than the audio-visual data. Fig. 3 shows the main components of a deletion apparatus according to other embodiments of the present invention. The deletion apparatus is used to delete a data stream stored on a storage medium, and that data stream comprises a data object. The data stream may further comprises an audio-visual data. The deletion apparatus 300 comprises a detecting means 310, a sharing characteristic processing means 320 and a data deleting means 330. The detecting means 310 is used to detect whether a data object is associated with other data streams. For example, the numeral value in the above mentioned counter means is detected, and it indicates that the data object is shared by other data stream if the numeral value is greater than 1. The sharing characteristic processing means 320 is used to accordingly process the sharing characteristic of a data object based on the information acquired by the detecting means 310 to indicate that the data object is no more associated with the deleted data stream, if the data object is associated with other data stream. For example, if the numeral value detected by the detecting means from the above mentioned counter means is 4, the numeral value in the counter means can be reduced to 3. Based on the information acquired by the detecting means 310, the data deleting means 330 is used to delete a data object if the data object is not associated with any other data stream. If the data stream to be deleted comprises also an audio-visual data, then the data deleting means 330 is further used to delete this audio-visual data. The present invention may be implemented with an appropriately programmed computer, a computer program installed on the computer being capable of deleting a data stream stored on a storage medium, wherein the data stream includes a data object. The computer program product comprises: code for detecting whether the data object is associated with other data stream; code for deleting the data object if the data object is not associated with other data stream; and code for accordingly processing the sharing characteristic of the data object to indicate that the data object is no more associated with the deleted data stream if the data object is still associated with other data stream. The computer program product can be stored on a storage carrier. This portion of program code may be provided to a processor to form a machine, such that the code executed on the processor produces an apparatus to implement the above mentioned functionality. The operation procedure of the apparatus 300 will be described in detail with reference to Fig. 4. Fig. 4 shows a flowchart of deleting a data stream stored on a storage medium according to another embodiment of the present invention. The data stream may be a digital television program. Firstly, a request for deleting a data stream stored on a storage medium is received, wherein the data stream comprises an audio-visual data and a data object associated therewith (step S410). The request comes from a user's input. The data object is a data object of an interactive application. Subsequently, the audio-visual data is deleted (step S420), and the data object associated with the audio- visual data is found based on an association file (step S430). The association file contains the association information between the audio-visual data and the data object, for example, a pointer to the data object. Then, it is detected whether the data object is associated with other data stream (step S430). The detection step can be implemented by acquiring the sharing characteristic of the data object. The sharing characteristic can be stored in a sharing file in the form of a sharing parameter. For example, a parameter value of 3 indicates that the data object is being shared by three data streams; and if the parameter value is 0, it indicates that the data object is not shared by any other data stream. Subsequently, based on the detection result of step S440, the data object is deleted (step S450) if the data object is not shared by any other data stream. Of course, if the ■ , > sharing file is dedicated to the data object only, the sharing file can be deleted subsequently. Based on the detection result of step S440, if the data object is being shared by other data stream, then the sharing characteristie of the data stream is processed accordinly (step S460), so that the data object is no more associated with the deleted data stream. For example, the above mentioned sharing parameter value is decremented from 3 to 2. Many other embodiments may also be applied in the processing of the sharing parameter, insofaras the processed sharing parameter is capable of reflecting the actual sharing condition of the data object and advantageous to the mangement of the data object. Finally, the association file is deleted (step S470). However, if the association file is shared by a plurality of data streams, it is only necessary to delete the portion of the association file relating to that data stream. If the data stream comprises a plurality of data objects, then the steps S430, S440, S450 or S460 form an iterative process until all the data objects associated with the audio-visual data are found. Fig.5 shows a digital recorder according to yet another embodiment of the present invention. The digital recorder 500 comprises a receiver 510 for receiving a digital stream such as a digital television program stream. The digital stream includes an interactive application, and the interactive application includes a data object. The data stream can be transmitted to the digital recorder 500 in one of the following forms, via cable broadcasting, land broadcasting, satellite broadcasting and the like. The digital recorder 500 comprises a storage means 100 as mentioned above for storing a digital stream on the storage medium 530 at the request input by a user, wherein the data object in the data stream is demultiplexed and stored separately. If the data stream comprises an audio-visual data, it is demultiplexed and stored separately too. When a data object is shared by a plurality of data streams, it is possible to store only one data object, and a sharing parameter is attached to the data object to indicate that this data object is a shared data object. The storage medium 530 can be a hard disk, but can also be other appropriate media such as DVD+RW. The digital recorder 50 further comprises a retrieving unit 540 for retrieving the data stream from the storage medium 530. The retrieving unit 540 is used to replay a program stored in the recorder or the storage unit 520. During the playback, the retrieving unit may also play synchronously the separately stored audio-visual data and the data object. In addition, the digital recorder 500 may further comprise a deletion apparatus 300 as mentioned above. The deletion apparatus receives a request that comes from a user's input for deleting a data stream on the storage medium, wherein the data stream includes a data object and the data object is a data object in an interactive application. It is first detected by the deletion apparatus whether the data object is associated with other data stream, and, if the data object is not associated with other data stream, the data object is deleted; however, if the data object is associated with other data stream, the sharing characteristic of the data object is processed accordingly, such that the data object is no more associated with the deleted data stream. In the present invention, an interactive application can be regarded in its entirety as a data object, thereby the interactive application is processed according to the technical approach mentioned above. While the present invention is described in combination with specific embodiments, it is obvious for those skilled in the art to contemplate many alternatives, modifications and variations based on the above description. Therefore, when those alternatives, modifications, and variations fall into the spirit and scope of the appended claims, they shall be regarded as being embraced by the present invention.