Cross-references to related applications
This application herein incorporates by reference for all purposes the entire contents of the following applications:
U.S. Non-Provisional application Ser. No. 11/396,264 titled "TECHNIQUES FOR GENERATING A MEDIA KEY" filed concurrently with the present application;
U.S. Non-Provisional application Ser. No. 11/396,379 titled "CAMERA FOR GENERATING AND SHARING MEDIA KEYS" filed concurrently with the present application; and
U.S. Non-Provisional application Ser. No. 11/396,381 titled "TRANSMISSION OF MEDIA KEYS" filed concurrently with the present application.
Background of the invention
The present invention relates to information processing techniques and more particularly to techniques for using a media key generated for media data.
The amount of information stored in digital format is ever increasing as an ever increasing number of applications and devices are available that can capture and process digital information. There is thus a growing need for improved interfaces and techniques for accessing, distributing, sharing, etc. the digital information. For example, even in this digital age, many people still prefer to hand out photographic prints instead of disks full of digital images. Apart from the "fun" aspect of photograph prints, many people still feel more comfortable handling physical objects rather then digital information. A photographic print also offers more convenience since it does not require access to a computer and does not require any special reader application to view the photo. Accordingly, improved interfaces and mechanisms are desired for accessing and sharing digital media data.
Brief summary of the invention
Embodiments of the present invention facilitate processing of media data. Techniques are provided for using media keys created for media data. A media key may be used to access media data for which the media key has been created. A media key has information associated with it that may be used to access the media data corresponding to the media key. Various operations may be performed using the accessed media data.
According to an embodiment of the present invention, techniques are provided for using a media key. Machine readable information is determined from the media key. A data identifier and a decryption key are determined from the machine readable information. Media data is accessed using the data identifier.
The machine readable information may be in the form of a barcode printed on the media key and the data identifier and the decryption key are determined from the barcode. In another embodiment, the machine readable information is read from a tag attached to the media key and the data identifier is determined from the machine readable information read from the tag. The accessed media data may be decrypted using the decryption key.
Additional information may be determined from the machine readable information and used to access the media data.
One or more operations may be performed using the media data accessed for a media data. In one embodiment, media data may be accessed corresponding to a second media key and may identifying an operation. The specified operation may then be performed on the media data accessed for the first media key.
According to an embodiment of the present invention, the media data accessed for a media key may comprise multiple types of information. An order may be determined for the media data and the multiple types of information output according to the determined order.
According to an embodiment of the present invention, techniques are provided for using a collection of media keys. Machine readable information is determined from each media key in the collection of media keys. A data identifier id determined for each media key in the collection of media keys from the machine readable information determined for the media key. A decryption key is determined for at least one media key in the collection of media keys from the machine readable information determined for the at least one media key. Media data is accessed for each media key in the collection of media keys using the data identifier determined for the media key.
The machine readable information for the media keys may be determined in different ways. In one embodiment, for at least one media key in the collection of media keys, a barcode printed on the at least one media key is read. In another embodiment, for at least one media key in the collection of media keys, machine readable information is read from a tag attached to the at least one media key.
In one embodiment, an order may be determined for the media data accessed for the media keys in the collection of media keys. Information in the media data accessed for the collection of media keys is output according to the determined order.
The media data accessed for the at least one media key may be decrypted using the decryption key determined for the at least one media key. An operation may be performed using media data accessed for a media key in the collection of media keys.
The foregoing, together with other features, embodiments, and advantages of the present invention, will become more apparent when referring to the following specification, claims, and accompanying drawings.
Brief description of the drawings
FIGS. 1A, 1B, 1C, 1D, 1E, and 1F depict various media keys according to embodiments of the present invention;
FIG. 2 is a simplified block diagram of a system that may be used to generate media keys according to an embodiment of the present invention;
FIG. 3 is a simplified high-level flowchart depicting processing for generating a media key according to an embodiment of the present invention;
FIG. 4 is a simplified block diagram of modules that may be used to generate a media key according to an embodiment of the present invention;
FIG. 5 is a simplified block diagram of a system that may be used to create media keys according to an embodiment of the present invention;
FIG. 6 is a simplified high-level flowchart depicting processing for generating a media key using previously generated media keys according to an embodiment of the present invention;
FIG. 7 depicts an example of a tablet reader that is configured to process multiple media keys according to an embodiment of the present invention;
FIG. 8 is a simplified block diagram of a system that enables a user to use a media key to access media data corresponding to a media key according to an embodiment of the present invention;
FIG. 9 is a simplified high-level flowchart depicting processing performed for using a media key according to an embodiment of the present invention;
FIG. 10 is a simplified high-level flowchart depicting processing performed for using a media key corresponding to a collection of media data according to an embodiment of the present invention;
FIG. 11 is a simplified block diagram of modules that may be used to generate output media data for a media key according to an embodiment of the present invention;
FIG. 12 is a simplified block diagram of a portable digital camera that may be configured to generate media keys according to an embodiment of the present invention;
FIG. 13 depicts a portable digital camera configured to generate a media key according to an embodiment of the present invention;
FIG. 14 depicts a camera displaying machine readable information in its display according to an embodiment of the present invention;
FIG. 15 depicts a simplified system for transmission of digital media keys according to an embodiment of the present invention; and
FIG. 16 depicts a simplified block diagram of a kiosk according to an embodiment of the present invention.
Detailed description of the invention
In the following description, for the purposes of explanation, specific details are set forth in order to provide a thorough understanding of the invention. However, it will be apparent that the invention may be practiced without these specific details.
Embodiments of the present invention facilitate processing of media data. According to an embodiment of the present invention, techniques are provided for generating and using media keys that facilitate distribution, sharing, accessing, outputting, creating, and/or performing other operations on media data. A media key may be generated for media data. A media key created for specific media data facilitates access to the specific media data. A media key may be created as a digital or electronic object or a physical object. A media key serves as a token that can be used to access media data for which the media key has been created. A user may use a media key to access the media data corresponding to the media key and possibly perform operations on the media data.
The media data for which a media key is created may comprise one or more different types of information including but not restricted to audio information, video information, image information, slide information, text information, etc. or combinations thereof. The media data for which a media key is created may comprise one or more media items. Examples include but are not restricted to a video clip, an audio clip, a movie, a photo, a slide, a document, contact information, business card information, a presentation (e.g., a Microsoft PowerPoint presentation), etc. or combinations thereof. A media item may also be a collection of other media items (e.g., a media item may comprise information pointing to other media items. For example, a photo album may comprise a collection of images, a slide presentation may comprise a set of slides and accompanying music, etc.
FIG. 1A depicts a media key 100 according to an embodiment of the present invention. Media key 100 may be generated for some media data. The media data may be stored in some storage location, such as on a server. Media key 100 depicted in FIG. 1A comprises a thumbnail image 102 and machine readable information 104. In one embodiment, thumbnail image 102 provides a unique visual human-readable indication of the contents of the media data for which the media key is created. For example, if the media key is created for a digital image, then thumbnail image 102 may be a representation of the image. As another example, if the media key is created for a song audio clip, then thumbnail image 102 may comprise the title of the song, information about the singer, artwork for album in which the song appears, or some other information related to the song that a human may use to determine the contents of the media data for which the media key is created. As another example, if the media data for which the media key is created comprises a collection of photos, then thumbnail image 102 may depict a collection of photos. Thumbnail image 102 thus provides a visual indication of the one or more media items included in the media data for which the media key is created. In this manner, thumbnail image 102 provides a visual cue to a user as to the contents of the media data for which the media key is created. The presence of thumbnail image 102 on media key 100 is optional.
Machine readable information 104 comprises information that can be read by a machine. Machine readable information 104 may comprise text, an image, a symbol, a barcode, a glyph, and the like, and combinations thereof. According to an embodiment of the present invention, machine readable information 104 associated with media key 100 comprises information that can be used to access the media data for which the media key is created.
Different techniques may be used to associate machine readable information 104 with media key 100. In one embodiment, the machine readable information may be printed on the media key. For example, a machine readable identifier (e.g., a barcode) may be generated and printed on the media key. In other embodiments, the media key may comprise a radio frequency identifier (RFID) tag that is either attached to the media key. For example, an RFID tag may be glued to the media key, stapled to the media key, pinned to the media key, or even embedded in the media key. In such an embodiment, the machine readable information may be associated with the media key by being stored in the memory of the RFID tag attached to the media key. Other techniques may also be used to associate the machine readable information with a media key.
Machine readable information 104 may comprise a data identifier 106 that may be used to access the media data for which the media key has been created. For example, the media data corresponding to the media key may be stored as a file on a server and the data identifier 106 may be used to locate the file on the server.
Different techniques may be used to generate data identifier 106 for a media key. According to one technique, the data identifier for a media key is generated based upon the media data for which the media key is created. For example, a cryptographic hash (e.g., an MD5 hash, an SHA1 hash) may be applied to the media data for which the media key is being created to generate the data identifier for the media key. Using a cryptographic hash prevents collisions in data identifiers. Other attributes of the media data may also be used to generate a data identifier for the media data. Examples of such attributes include but are not restricted to date or time when the media data was created, a user name, etc. and combinations thereof.
A data identifier for media data may also be generated using information not related to the media data. For example, techniques that are capable of generating unique values may also be used to generate a data identifier. In some instances, a data identifier may be generated prior to capture or identification of the media data. For example, a list of pre-determined data identifiers may be provided and when a data identifier from the list may be assigned to media data at the time of creating a media key for the media data.
The data identifier may be generated by different systems. In one embodiment, the data identifier may be generated by the server on which the media data is stored. In another embodiment, an identifier generator system/service may be used to generate a data identifier. In another embodiment, data identifier 106 may be generated by the system or device that is used for creating a media key. Any of the techniques described above may be used to generate the data identifier. For example, a system configured to create media keys may apply a cryptographic hash (e.g., an MD5 hash, SHA1 hash) to the media data for which a media key is being created to generate the data identifier. The data identifier may then be formatted as machine readable information 104 that is associated with media key 100 during generation of the media key.
In some embodiments, machine readable information 104 may optionally comprise a decryption key 108. The decryption key may be present in embodiments where the media data is stored in encrypted form. Decryption key 108 may be used to decrypt the encrypted media data. The media data may be encrypted using a symmetrical encryption technique, in which case decryption key 108 is the same as the encryption key that is used to encrypt the media data. In such embodiments, for a given media key, the data identifier 106 encoded in the machine readable information associated with the media key may be used to access the encrypted media data corresponding to the media key and the decryption key 108 encoded in the machine readable information associated with the media key may be used to decrypt the encrypted media data.
Machine readable information 104 may also optionally comprise additional information 110. Additional information 110 may comprise information related to the media data such as metadata or other contextual information for the media data. For example, additional information 110 may identify the storage location (e.g., identify a server) where the media data corresponding to the media key is stored. In such an embodiment, additional information 110 may be used to access the media data corresponding to the media key. Additional information 110 may also identify the media data type (e.g., audio data, video data, etc.). This information may be useful for identifying an application or output device for outputting the media data. Additional information 110 may also comprise other types of information such as information identifying an action/command to be performed using the media data, workflow information, etc. Additional information 110 may also comprise information that is specific to applications that are configured to perform operations on the media data. For example, additional information 110 may identify an application that is used to create the media key, which user created the media key, date when the media key was created, etc.
Other information 112 may also be printed on media key 100. Information 112 may include different types of information and may be human-readable. For example, in one embodiment, other information 112 may identify the type of media data or the media item(s) included in the media data corresponding to the media key. For example, for a media key created for a photo, other information 112 may state "Photo". This provides information to the user of the media key as to the nature of the contents of the media data corresponding to the media key. As previously described, a media key may be created for media data comprising a collection of media items (e.g., a collection of photos). In this case, other information 112 may state "Collection". In the case of a collection, other information 112 may also possibly indicate the number of media items in the collection. Other information 112 may also include other types of information such as information identifying a storage location (e.g., a directory location) or filename of the corresponding media data, characteristics about the media data, etc. Other information 112 may also identify the primary mime-type of the media data, the date or time when the media key (or corresponding media data) was created or shared.
A media key, such as media key 100 depicted in FIG. 1A, may be created as a physical object or a digital/electronic object. For example, as a physical object, media key may be a piece (e.g., a card) of plastic, paper, etc. having a thumbnail image and machine readable information associated with it. As previously described, there are different ways in which the machine readable information is associated with the media key. The machine readable information may be printed on the media key (e.g., a barcode encoding the information may be printed on the media key). In an alternative embodiment, the machine readable information may be stored in the memory of a tag (e.g., a RFID tag) attached (including being embedded in the media key) to the media key.
In other embodiments, a media key may also be a digital or electronic object that may be displayed on a screen. An electronic media key may also be electronically transmitted from one device to another.
A media key may take different forms. Different layouts may be used to print information on a media key. FIG. 1B depicts a media key 120 according to an embodiment of the present invention. Media key 120 has thumbnail image 122 printed on one side of the media key and machine readable information 124 and other information 126 printed on the other side of the media key. This layout enables a reader to view thumbnail image 122 while a media key reader may scan the back side of the media key to read machine readable information 124.
In FIG. 1B, the machine readable information is encoded into a machine readable identifier 124 that is printed on the back side of the key. The identifier depicted in FIG. 1B is a QR code barcode. Other information 126 printed on the media key states "Photo" thereby indicating that the media data corresponding to the media key comprises a photo media item. This provides useful information to the user of the media key as to the contents of the media data corresponding to the media key.
Media keys may be provided in various different forms and shapes. For example, in the media key depicted in FIG. 1A, the machine readable information and thumbnail image both appear on the same side of the key whereas in the media key depicted in FIG. 1B the thumbnail image and machine readable information appear on opposite sides of the media key. The information printed on a media key may vary in different embodiments. In one embodiment, various markings such as colors, symbols, etc. may be printed on the media key to represent the type of the media data corresponding to a media key. For example, if a first media key is created for a photo, a first color (e.g., red) designated for photo media may be printed on the media key to indicate that the media item is a photo. A colored stripe in the first color may be printed on the media key. For example, as depicted in FIG. 1C, a colored stripe 132 is printed along a side of media key 130. A second media key created for a video clip may have a different color (e.g., green) designated for video media printed on it to indicate that the media item is a video clip. In this manner, different colors may be used to represent different media items or media data types. If the media data corresponding to a media key comprises different information types or different media items, then multiple colors may be printed on the media key, one for each media item type. Alternatively, a color representing the primary media type may be printed on the key. The colors enable a user to easily sort and differentiate media keys corresponding to different types of media data.
In other embodiments, different symbols or markings may be printed on a media key to indicate the type of media items or information included in the media data corresponding to the media key. The purpose of these markings is to enable a user to easily determine the type of information included in the media data corresponding to the media key by looking at the symbol(s) or marking(s) or colors printed on the media key.
Media keys may also be of different shapes and sizes. In one embodiment, the shape and/or size of a media key may identify the type of information or media items included in the media data corresponding to the media key. Media keys may come in jigsaw shapes, triangles, circles, rectangles, irregular shapes, etc. In some embodiments, the shape and/or side of a media key may also encode the data identifier for the media data corresponding to the media key.
FIGS. 1D and 1F depict further examples of media keys according to embodiments of the present invention. Media key 140 depicted in FIG. 1D has a hole 142 in it that enables the media key to be kept on a rope or keychain (as shown in FIG. 1E). A keychain may thus provide a convenient mechanism for holding several such media keys, for example, media keys corresponding to photos in an album. In one embodiment, the first media key in a keychain stack may correspond to media data for the full album and successive media keys may correspond to individual photos in the album. The thumbnail image on the first media key may depict a collection of photos. Media key 150 depicted in FIG. 1F has a specially shaped notched hole 152 shaped like a bread tab. The bread tab facilitates addition and removal of the media key from a keychain, rolodex, etc.
The media keys depicted in FIGS. 1A through 1F are merely illustrative of embodiments incorporating the present invention and are not intended to limit the scope of the invention as recited in the claims. One of ordinary skill in the art would recognize other variations, modifications, and alternatives.
FIG. 2 is a simplified block diagram of a system 200 that may be used to generate media keys according to an embodiment of the present invention. System 200 depicted in FIG. 2 is merely illustrative of an embodiment incorporating the present invention and is not intended to limit the scope of the invention as recited in the claims. One of ordinary skill in the art would recognize other variations, modifications, and alternatives.
As depicted in FIG. 2, a processing system 202 is provided for performing processing for creating a media key. Processing system 202 may comprise a processor and a memory subsystem and possibly other subsystems. The processor may execute one or more applications. An application 204 executing on a processing system 202 may enable a user to initiate generation of media keys. The user may interact with application 204 via input devices (e.g., mouse, keyboard) of processing system 202. For example, the user may select the media data for which a media key is to be created using a mouse connected to processing system 202. Application 204 may then use the user-provided information to cause generation of a media key. Information may be output to the user via one or more output devices of processing system 202.
The media data selected for media key creation may be stored locally or remotely from processing system 202. For example, the media data may be stored in storage 206 that may be coupled to processing system 202 via communication network 208. Storage 206 may comprise one or more servers storing data.
Communication network 208 may be a local area network (LAN), a wide area network (WAN), a wireless network, an Intranet, the Internet, a private network, a public network, a switched network, or any other suitable communication network. Communication network 208 may comprise many interconnected computer systems (which may also store the media data) and communication links such as hardwire links, optical links, satellite or other wireless communications links, wave propagation links, or any other mechanisms for communication of information. Various communication protocols may be used to facilitate communication of information via communication network 208, including TCP/IP, HTTP protocols, extensible markup language (XML), wireless application protocol (WAP), protocols under development by industry standard organizations, vendor-specific protocols, customized protocols, and others.
The media data selected for creating a media key may also be stored by processing system 202. The media data may also be stored on other storage media such as removable memory media such as memory cards, disks, drives, CDs, DVDs, etc. Apparatus may be coupled to processing system 202 that is capable of reading the media data from such storage media. For example, as depicted in FIG. 2, a memory media reader 210 may be coupled to processing system 202. Memory media reader 210 may be configured to accept a memory medium such as a memory card 212 and read data stored on the memory card. The data stored on the card may be displayed to the user by application 204 and the user may then select the data for which a media key is to be created. In one embodiment, the selected data may be uploaded to some server from the removable memory media.
Processing system 202 may create or determine a unique data identifier for the media data for which the media key is to be generated. The data identifier that is determined is such that it can be used to access the media data for which the media key is being created. The data identifier may be of any length greater than zero. In one embodiment, the data identifier is 128 bits long.
In one embodiment, the data identifier for the media data is generated by processing system 202. Processing system 202 may be configured to create the data identifier based upon the selected media data. For example, in one embodiment, processing system 202 may apply a cryptographic hashing algorithm (e.g., an MD5 hash) to the media data which results in the generation of a unique data identifier for the data. In this manner, the contents of the media data are used to generate the data identifier. As previously described, different techniques may be used to determine the data identifier for a media key.
In other embodiments, data identifier for the media data may be generated by the server storing the media data and provided to processing system 202. In yet other embodiments, an identifier generation system/service may be used to generate the data identifier for the media data selected by the user. The generated data identifier may be provided to processing system 202.
In some instances, the selected media data may be stored in encrypted form. In such instances, processing system 202 is configured to determine a decryption key that can be used to decrypt the encrypted data. In some embodiments, processing system 202 may be configured to encrypt the media data. In such embodiments, processing system 202 may encrypt the media data to form encrypted media data and the encrypted media data may then be uploaded/stored in a memory location from where it can be subsequently accessed. The decryption key that may be used to decrypt the data may be generated by processing system 202 or may be provided to processing system 100 possibly by the user. A symmetric encryption algorithm may be used to encrypt the media data, in which case the decryption key is same as the encryption key.
Processing system 202 may also determine additional information, if any, to be included in the machine readable information for the media key. As previously described, the additional information may include various types of information including metadata related to the media data, contextual information, etc.
Processing system 202 may also be configured to generate a thumbnail image to be printed on the media key to be created. As previously described, the thumbnail image is created such that it provides a human-readable visual representation of the contents of the media data for which the media key is created. The thumbnail image thus provides a visual cue to the user as to the contents of the media data for which the media key is created.
Processing system 202 is configured to generate machine readable information to be associated with the media key. The machine readable information may include the data identifier, the decryption key, and additional information. In one embodiment, processing system 202 may generate a machine readable identifier such as a barcode that encodes the data identifier, decryption key, and additional information. In other embodiments, the machine readable information comprising the data identifier, the decryption key, and the additional information may be written to a tag such as an RFID tag that is associated with the new media key.
Processing system 202 then causes a media key to be generated using the thumbnail image and the machine readable information. Processing system 202 may generate an electronic media key or a physical media key. In one embodiment, processing system 202 is configured to forward the thumbnail image and the machine readable information to a media key generator 214. Media key generator 214 is then configured to create a physical media key 216 where the thumbnail image is printed on the media key and the machine readable information is associated (e.g., printed on the media key, or stored in a tag attached to the media key) with the media key.
The machine readable information may be associated with the media key in various ways. For example, a barcode may be generated encoding the data identifier, and optionally the decryption key and additional information. The barcode may then be printed on the media key. In embodiments where an RFID tag is used, the machine readable information comprising the data identifier, decryption key, and additional information is written to the RFID tag that is attached to the media key being created.
A media key may be created as a physical object or a digital/electronic object. The digital media key may be displayed to the user via an output device (e.g., a screen, a monitor) of processing system 202 or may be transmitted to some target device.
FIG. 3 is a simplified high-level flowchart 300 depicting processing for generating a media key according to an embodiment of the present invention. The processing may be performed by software modules (code, instructions), hardware modules, or combinations thereof. The processing depicted in FIG. 3 may be performed by a system such as system 200 depicted in FIG. 2. Flowchart 300 depicted in FIG. 3 is merely illustrative of an embodiment of the present invention and is not intended to limit the scope of the present invention. Other variations, modifications, and alternatives are also within the scope of the present invention.
As depicted in FIG. 3, processing is initiated upon receiving a signal to generate a media key (step 301). Various events may trigger a signal to generate a media key. The signal may be generated in response to a request received from a user to generate a media key. The signal may also be triggered automatically in response to various events. For example, media key generation may be triggered upon receiving an email, upon detecting presence of voicemail, upon capturing an image, etc. For example, whenever a voice mail is left, a signal may be triggered to generate a media key for the voice mail. The signal to generate a media key may be generated by a device, an apparatus, process, program, application, etc.
The media data for which a media key is to be generated is determined (step 302). In one embodiment, a user may identify the media data for which a media key is to be created. In other embodiments, the media data may be identified by a device, system, or process, etc. with or without any user involvement. For example, if the media data represents a voice mail on a phone system, the system may be configured to automatically select the voice mail for media key creation.
A determination is then made if the media data determined in 302 is in encrypted form (step 304). If the data is encrypted, then a decryption key that can be used to decrypt the data is determined (step 306). Processing then continues with step 314.
If it is determined in 304 that the media data is not encrypted, then a check is made to see if the media data determined in 302 is to be encrypted (step 308). If it is determined that the media data is to be encrypted, then the data is encrypted (step 310). The key used for performing the encryption may be randomly generated or may be provided. A decryption key is determined that can be used to decrypt the encrypted data (step 312). A symmetric encryption scheme may be used to encrypt the data in 310 so that the decryption key that can be used to decrypt the data is same as the encryption key that is used to encrypt the data.
A data identifier is then determined for the media data (step 314). The data identifier is generated such that it can be used to access the media data for which the media key is being generated. For example, the data identifier may point to storage location where the media data is stored. For example, if the media data corresponding to the media key is stored in a file on a server, the data identifier generated in 314 may be used to locate the file on the server.
As previously described, different techniques may be used to generate a data identifier. The data identifier may be generated by different systems such as a system that is configured to generate media keys, a server such as a storage server where the media data is stored, a centralized identifier generator system/service, and other systems. In one embodiment, the data identifier may be generated using the media data for which a media key is being created. For example, a data identifier may be generated by calculating a cryptographic hash (e.g., an MD5 or SHA1 hash) for the media data. Cryptographic hash functions create unique data identifiers. If the media data is encrypted, then the data identifier is generated using the encrypted media data. Other techniques that do not use the media data itself may also be used to determine a data identifier.
Using a cryptographic hashing technique to generate the data identifier provides several advantages. If the media data is unencrypted and a specific hashing technique is used (like SHA1 or MD5), then the hash created for the media data may be used to point to the media data without revealing the media data. For instance, if two users both have access to the same media data and the hash is based on the unencrypted media data, one user can use the hash as a pointer to the specific media data without revealing the data. For instance, a user A can send information to user B about where a photo was taken and indicate which photo user A is referring to by sending the hash generated based upon the photo instead of sending the photo itself. User B can look at the hashes of the locally stored photos to determine which photo user A is referring to or use the hash to access the photo.
Using the media data itself to generate the hash which is used as the data identifier guarantees, in almost all instances, that the data identifier is unique for that media data. This eliminates the need for getting identifiers from a central server in order to avoid collisions or identifier reuse. It should be noted that other techniques for creating unique identifiers may also be used for generating a data identifier. These techniques may use the media data or its related attributes or other information to generate unique values that are then used as data identifiers. For instance, using time and date, a unique username, email address, or other information and combinations thereof may be used. A cryptographic hash may be calculated for the information to generate a unique identifier that points uniquely to the media data.
The media data (either in encrypted or non-encrypted form) for which the media key is being generated may then optionally be uploaded to some storage location (step 316). For example, in one embodiment, the media data for which a media key is being generated may be uploaded to a server (e.g., a server connected to the Internet). In one embodiment, the data identifier determined in 314 may be used to determine a storage location for the media data such that the media data is accessible using the data identifier.
In alternative embodiments, the data identifier may be determined after uploading the media data (i.e., step 316 may be performed before step 314). For example, the media data may be uploaded to some memory storage location and then a data identifier may be generated that can be used to access the media data from the memory storage location.
In some embodiments, a storage service may also be used to store the media data. The media data to be stored may be provided to a storage service which may then store the data and generate a data identifier that can be subsequently be used to access the stored media data.
Additional information, if any, to be included in the machine readable information for the media key is then determined (step 318). The additional information may include a variety of information. In one embodiment, the additional information may comprise metadata related to the media data or other contextual information related to the media data for which a media key is being created. In another embodiment, the additional information may identify the storage location (e.g., identify a server) and/or a filename storing the media data. Additional information may also identify an action or command to be performed using the media data. Additional information may also comprise information that is specific to applications that are configured to perform operations on the media data. Additional information may also comprise other information such as workflow information. Additional information may also comprise or point to versioning information for the media data. The versioning information may indicate if the media data has changed or the version of the media data.
The description continues in the full USPTO document.