Abstract:
Methods and systems for associating objects with corresponding machine behaviors. Machine behaviors refer to responsive actions that are triggered when an object (which may be physical or electronic) is encountered. Examples of these behaviors include fetching a web page, executing software instructions, etc. A registration system enables machine behaviors to be associated with objects through use of object identifiers. For an electronic object such as an audio or video signal, the identifier can comprise a steganographic in-band watermark, a numeric ID or song/artist name field in a in a file header; a 128-bit hash value obtained by applying a hashing algorithm to the content data, the file header data, a portion thereof, etc. The disclosure particularly focuses on an embodiment utilizing stickers as objects, and watermarks as identifiers, but the technology can be implemented in many other, different, forms.

Description:
RELATED APPLICATION DATA 
       [0001]    This application is a continuation of copending application Ser. No. 11/359,756, filed Feb. 21, 2006, which is a division of application Ser. No. 09/690,773, filed Oct. 17, 2000 (now U.S. Pat. No. 7,003,731). These applications are incorporated herein by reference. 
         [0002]    The subject matter of this application is also related to that disclosed in patents and publications U.S. Pat. Nos. 5,862,260, 6,614,914, 6,947,571 and 20050013462, and in applications Ser. No. 09/633,587 (filed Aug. 7, 2000), and 60/134,782 (filed May 19, 1999; published as an appendix in U.S. Pat. No. 6,311,214). These documents (but only the appendix portion of U.S. Pat. No. 6,311,214) are hereby incorporated by reference. 
     
    
     TECHNICAL FIELD 
       [0003]    The present technology relates to multimedia signal processing, and in particular relates to audio or video object-based initiation of different behaviors (actions). 
       BACKGROUND AND SUMMARY 
       [0004]    Digital watermarking is a process for modifying physical or electronic media to embed a machine-readable code into the media. The media may be modified such that the embedded code is imperceptible or nearly imperceptible to the user, yet may be detected through an automated detection process. Most commonly, digital watermarking is applied to media signals such as images, audio signals, and video signals. However, it may also be applied to other types of media objects, including documents (e.g., through line, word or character shifting), software, multi-dimensional graphics models, and surface textures of objects. 
         [0005]    Digital watermarking systems typically have two primary components: an encoder that embeds the watermark in a host media signal, and a decoder that detects and reads the embedded watermark from a signal suspected of containing a watermark (a suspect signal). The encoder embeds a watermark by altering the host media signal. The reading component analyzes a suspect signal to detect whether a watermark is present. In applications where the watermark encodes information, the reader extracts this information from the detected watermark. 
         [0006]    Several particular watermarking techniques have been developed. The reader is presumed to be familiar with the literature in this field. Particular techniques for embedding and detecting imperceptible watermarks in media signals are detailed in the assignee&#39;s copending application Ser. No. 09/503,881 and U.S. Pat. No. 5,862,260, which are hereby incorporated by reference. 
         [0007]    One particular embodiment of the technology detailed herein is a system for enabling a user to associate a machine behavior with an object. That system includes a registration system and a database management system. The registration system enables a user to specify a machine behavior to be associated with an object via an object identifier. The database management system is in communication with the registration system, and receives/maintains records associating object identifiers with machine behaviors. Thus, the database management system is operable to receive object identifiers and, in response, to initiate the machine behavior or behaviors associated with those object identifiers. 
         [0008]    The registration system can include a network interface that enables users to associate behaviors with object identifiers from remote client computers. 
         [0009]    The object identifiers can comprise watermark identifiers which are embedded in watermarks on corresponding objects. 
         [0010]    An exemplary machine behavior includes fetching a web site relating to an object carrying the object identifier. 
         [0011]    The above-noted system can include a user interface that enables a user to view an image of an object along with an image of a behavior to be associated with the object. This interface can include a control that enables the user to associate the object with the behavior, and can be operable to communicate a database structure to the database management system specifying an object identifier for the object and a description of the behavior. 
         [0012]    Another embodiment is a method for enabling a user to associate a machine behavior with an object. This method includes presenting a user interface enabling a user to specify an object and a machine behavior to be associated with the object; receiving a specification of an object and a behavior to be associated with that object; and updating a database with an entry specifying an object identifier of the object and the behavior. Thus, the database is operable to initiate the behavior in response to receiving an object identifier decoded from machine readable code on the object. 
         [0013]    Specification of the object can include a registration identifier provided on the object or packaging of the object. The registration identifier can be embedded in a watermark on the object. 
         [0014]    Further features will become apparent with reference to the following detailed description and accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS  
         [0015]      FIG. 1  is a system diagram depicting a system for associating watermark enabled objects with machine behaviors, and for triggering those behaviors in response to decoding watermarks. 
           [0016]      FIG. 2  is a diagram depicting a variant of the system shown in  FIG. 1  showing system components for enabling users to perform watermark identifier registration and embedding. 
       
    
    
     DETAILED DESCRIPTION  
       [0017]    The principles of applicants&#39; technology are described and illustrated with reference to specific implementations. However, it will be recognized that the technology can be implemented in many other, different forms. 
         [0018]    The following description details a system and related methods for associating watermark enabled objects with machine behaviors. To illustrate the system, the description focuses on an example of watermark enabled stickers. As noted, the system applies more broadly to watermarking both physical and electronic objects. In particular, aspects of the system may be used for watermarking media signals like images, video and audio, as well as applying watermarks to physical objects. Watermarks may be applied to physical objects by placing a watermarked image on a physical object, by modulating the surface topology of the object, etc. See U.S. Pat. No. 5,862,260, for more information about watermark embedding of and decoding from physical and electronic objects. 
         [0019]    Stickers in all their varieties have found an enduring place in our society. From the workplace (Post-It® brand message notes), to kids in a classroom, stickers have an inherent value associated with them, whether it be functional (seals, labels, etc.) or just to identify yourself with a particular affinity group (bumper stickers on cars). By placing a watermark on stickers they can be used in novel ways. By encoding a set of stickers with a watermark during production, specific machine behaviors can be assigned to them. These behaviors can be associated or even possibly changed by anyone from the manufacturer through the distributor, all the way to the end-user. In addition, the users can create their own watermark enabled stickers by creating an image, embedding a watermark in it, and associating the watermark with one or more machine behaviors. 
         [0020]    These behaviors may include, but are not limited to the following:
       Taking the user to a web-site linked to the watermark via a network address of the web-site or index to the network address.   Opening an email client to email to a specific person (e.g., a person whose email address is stored in the machine behavior description associated with the watermark).   Launching the user into an Interframe Relay Chat (IRC) session that other people with the same sticker can participate in.   Authenticating the user as part of a process of accessing a network resource, such as account information or access to a computer network.   Authentication the user in an electronic commerce transaction performed on a computer network.   Sending an electronic card.   Placing a phone or video-conference call.   As props in a computer game. For example, the prop is a multi-sided, or multi-faceted object, where each side or facet has a watermarked image conveying a different message used to control the game. The computer game includes a watermark decoder for extracting the messages from image frames captured of the prop. The message may directly carry the message or act as an index to a more detailed game instruction in a database, such as an instruction that changes over time based on changes to the corresponding database entry by the user or game manufacturer.   As a visual aide for disabled users.   Anywhere where machine vision is not feasible.       
 
         [0031]    In each of the above applications, the watermark carries information that links the watermarked object (e.g., sticker) with a machine behavior. To trigger this behavior, a watermark decoder application captures an image or images of the watermarked sticker, extracts the watermark, and uses information embedded in the watermark to determine the associated machine behavior. The watermark decoder then takes action to initiate the machine behavior associated with the watermark. 
         [0032]    For some applications, it is useful to enable the user to control the behavior associated with a watermarked object. This type of management may be handled by creating accounts for users and providing access to the accounts via some authentication method (email, passwords, etc.). For a number of reasons, these access methods can be problematic (losing passwords, asking kids for their email addresses, etc.). As an alternative, watermarks may be used to manage the process of associating behaviors with a watermarked object. 
         [0033]    For example, in the scenario where a user wants to assign behaviors to a set of watermarked stickers they have received, they can hold up the first sticker (or its packaging), and be taken to a registration application to activate the stickers in the pack. 
         [0034]      FIG. 1  is a system diagram depicting a system for associating watermark enabled objects with machine behaviors, and for triggering those behaviors in response to decoding watermarks. The system depicted in  FIG. 1  is implemented on a computer network, namely, the Internet. The user accesses the system via a computer  100  connected to the Internet. The computer broadly encompasses a variety of devices, such as Personal Computers, set-top boxes, personal digital assistants, Internet appliances, telephones (including wireless devices), audio and video players, and imaging devices (CCD or CMOS cameras, camcorders, printers, fax machines, copiers, etc.). The computer is connected to an image capture device  102 , such as a PC camera or scanner, and includes watermark decoder software for decoding watermarks from images captured from the image capture device. 
         [0035]    The system architecture shown in  FIG. 1  includes a system ( 106 ) for managing the process of assigning behaviors to watermarked objects as well as a database management system ( 108 ) for initiating behaviors in response to decoding watermarks from the objects. These two systems may be integrated or implemented separately. In the application depicted here, the registration system and database management system are accessible via a network interface using standard network technology, including HTML, XML, and TCP/IP. A watermark embedding system has previously embedded watermarks carrying watermark identifiers into stickers. The stickers (or packages of them) also include a registration identifier used to activate the behaviors associated with them. 
         [0036]    The registration system maintains a registration database including records of the registration identifiers and corresponding watermark identifiers. The registration identifiers are serialized numbers corresponding to the watermarked stickers or packages of them. The watermark identifiers are a form of object identifiers that are encoded into the watermarks on the corresponding stickers. The registration system maintains a registration database  110  of data records indicating the watermark identifiers associated with each registration identifier. When a user selects a behavior to be associated with a watermarked object via the registration system, the registration system sends an update  112  to a behavior database  114  specifying the behavior to be associated with a corresponding watermark identifier. In response, the database management system  108  updates its database to include a record that indicates the behavior associated with a particular watermark identifier. 
         [0037]    The database management system  108  is also responsible for supporting machine behavior associated with a watermarked sticker in response to detection of the watermark on the sticker. It has a network interface for communicating with other computers over the Internet. In particular, it receives requests in the form of an XML packet from a watermark decoding computer, extracts a watermark identifier from the packet and looks up the associated behavior or behaviors in the behavior database. It then initiates the associated behavior. The details of how this behavior is carried out depend on the application and type of behavior. 
         [0038]    In a typical registration process, the user accesses the registration system via a registration web site, which presents an HTML interface to the users&#39; computers. The user may fetch the HTML pages of this interface using an Internet browser or application program, like the watermark decoder application executing on the computer  100 . This interface enables the user to enter a registration identifier to start a process of associating behaviors with watermark identifiers embedded in watermarked stickers. In response to a registration identifier, the registration system returns a page that enables the user to specify the behavior. In the case where the behavior is linking a watermarked sticker to a web site, the user specifies the network address of the web site, such as a URL or IP address. In the case where the behavior is linking a watermarked sticker to an email message, the user specifies the email address of the email recipient. 
         [0039]    As noted above, there are many other types of watermark enabled behaviors. They can be classified as providing information to the watermark decoding computer, launching some software program or machine action, or a combination of both. Table 1 below gives some examples of behaviors, and the related information and actions. 
         [0000]    
       
         
               
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                   
                 Information Returned to 
                 Associated Machine or 
               
               
                 Behavior Type 
                 Decoding Computer 
                 Software Actions 
               
               
                   
               
             
             
               
                 linking to web site 
                 URL, web page 
                 launching browser on client 
               
               
                   
                   
                 to fetch/render web page at 
               
               
                   
                   
                 URL 
               
               
                 opening an email client 
                 email address of target 
                 launching email client and 
               
               
                   
                 recipient 
                 populating address field 
               
               
                   
                   
                 with target recipient 
               
               
                 Starting a chat session 
                 address of chat session 
                 launching chat application 
               
               
                   
                   
                 (watermarks on the stickers 
               
               
                   
                   
                 can be designed such that 
               
               
                   
                   
                 only those holding the 
               
               
                   
                   
                 stickers can gain access to 
               
               
                   
                   
                 the chat session, each by 
               
               
                   
                   
                 showing the sticker to his or 
               
               
                   
                   
                 her watermark decoder 
               
               
                   
                   
                 enabled camera) 
               
               
                 accessing account 
                 address of account 
                 launching of browser 
               
               
                 information or other 
                 information 
                 application to access 
               
               
                 network resources 
                   
                 account information 
               
               
                   
                   
                 through a web interface; 
               
               
                   
                   
                 supplying user 
               
               
                   
                   
                 authentication information 
               
               
                   
                   
                 from watermarked object 
               
               
                   
                   
                 and/or from user (user 
               
               
                   
                   
                 password, user name, log 
               
               
                   
                   
                 on, etc.) 
               
               
                 Sending an electronic card 
                 card template 
                 launching client application 
               
               
                   
                   
                 to enable the user to design 
               
               
                   
                   
                 the card and add personal 
               
               
                   
                   
                 message, launching email 
               
               
                   
                   
                 application to send 
               
               
                   
                   
                 electronic card (or link to 
               
               
                   
                   
                 electronic card) 
               
               
                 placing a phone or video 
                 phone number or IP address 
                 launching application to 
               
               
                 conference call 
                 of destination 
                 initiate phone call over the 
               
               
                   
                   
                 internet or telephone 
               
               
                   
                   
                 network 
               
               
                 props in an interactive 
                 identifier of prop, and 
                 game application receives 
               
               
                 computer game 
                 possibly other context 
                 prop and context 
               
               
                   
                 information, such as game 
                 information and responds 
               
               
                   
                 player holding the prop, etc. 
                 accordingly 
               
               
                 visual aid for disabled users 
                 returns information in the 
                 browser, or other media 
               
               
                   
                 form of graphics, audio, or 
                 player applications render 
               
               
                   
                 video (may provide address 
                 the information (such as the 
               
               
                   
                 of audio or video content at 
                 streaming media) on the 
               
               
                   
                 an audio or video server on 
                 decoding computer 
               
               
                   
                 the Internet) 
               
               
                 machine control 
                 machine instruction 
                 machine or software 
               
               
                   
                   
                 executes instruction 
               
               
                   
               
             
          
         
       
     
         [0040]    For a given application, the registration system provides information to the user to enable the user to select the behavior and provide pertinent information, such as URL, IP address, phone number, email address, content file (e.g., audio, image or video file), etc. The registration system formulates a description of the behavior, associates it with the watermark identifier specified by the user, and creates an update  112  to the behavior database. 
         [0041]    The user then uses the stickers or shares them with friends. To trigger the behavior of a sticker, a user captures an image of the sticker with an image capture device  102  using a watermark decoder application  104  executing on the computer  100 . The watermark decoder extracts the watermark identifier from a watermark embedded in the image on the sticker. It then sends the watermark identifier to the database management system  108  via the Internet, which in turn, looks up the associated behavior. The database management system then triggers the associated behavior by sending information, or instructions back to the decoding computer. The decoding computer renders the information, and launches a software or other machine action associated with the instructions returned from the database. The database need not be implemented in a remote computer. For example, the database may be implemented in the watermark decoding computer or device. 
         [0042]    As an enhancement to the registration process, objects may carry watermarks that automatically link the user to the registration web site. For example, one side of the sticker  116  or its packaging  118  may contain a watermark with the network address or an index to a network address of the registration web site. The user shows this part of the sticker or packaging to the image capture device. The watermark decoder extracts the watermark and looks up the network address in the behavior database, and launches a browser to fetch the registration web site. The watermark may also carry the registration identifier. In this case, the registration web site can tailor the web page returned to the user to be specific to the watermarked object. If the user or someone else previously associated a behavior with the sticker, the registration web site returns the current status associated with the registration identifier and the behaviors associated with the watermarked objects linked to that registration identifier. To get detailed information about particular watermarked objects during the registration process, the user can show the watermarked object to a camera, and use a watermark decoder to extract the watermark identifier and supply it to the registration system. In response, the registration system takes the watermark identifier, queries the behavior database via the database management system, and returns a description of the associated behaviors. This approach provides a simple and automated process of activating watermark enabled objects. 
         [0043]    For more information about an object identifier registration system and system for linking objects with machine behaviors, see U.S. patent application Ser. No. 09/571,422, which is hereby incorporated by reference. 
         [0044]    In some applications, the user may wish to create his or her own watermarked objects.  FIG. 2  illustrates a system that enables users to assign watermark identifiers to corresponding behaviors and objects and update the behavior database. In this particular system, the user&#39;s computer includes a watermark embedder application ( 120 ). However, the embedder application may be implemented on a separate computer, such as a server on the Internet accessible via a client application on the user&#39;s computer  100 . In the former case, the user embeds the watermark into the desired image content on his computer. In the latter case, the client supplies the image content to the server, which performs watermark embedding and returns watermarked images to the client. In both cases, the watermarked objects are created by printing the watermarked images on objects. 
         [0045]    The process begins when an embedder  120  creates a registration request. In the system shown in  FIG. 2 , the embedder  120  is a software application running on the computer  100 . The embedder formulates the request in a request file. The system provides a template for the request file. The request file specifies the number of watermark identifiers requested and the names of the media files to be embedded. The file may also specify the behaviors to be associated with each watermark identifier. Alternatively, the user can specify the behaviors to be associated with the watermark identifier at a later time using the methods described in this document. In the case where embedding is performed on a server as opposed to the user&#39;s computer, the request file may also include the media file (e.g., an image file) carrying the content to be embedded with the watermark identifier. 
         [0046]    Next, the embedder connects, via a network connection, to the registration system  106 . In particular, it connects to a registration web site via an Internet connection. This web site requests the embedder&#39;s username and password to authenticate it. 
         [0047]    The user enters his username and password via a user interface displayed on the PC  100  and submits them to the web site for authentication. 
         [0048]    Upon authentication, the registration website  106  returns an HTML page presenting the embedder with a user interface screen that allows the user to locate the embedder&#39;s registration request file for uploading to the web site. The user then enters a command to instruct the embedder to upload the selected request file. 
         [0049]    The embedder provides the information required to locate the file on the embedder&#39;s computer and submits it for upload. 
         [0050]    The registration request file is uploaded into a registration loader program  122 . 
         [0051]    The registration loader  122  performs a quick scan of the uploaded registration request file and reports back to the embedder any errors in format that it detects. If there are errors, the file is not processed. 
         [0052]    If the registration request file is properly formatted, the embedder receives a confirmation from the registration website  106  that the request file has been successfully uploaded and will be submitted for processing by the registration loader  122 . 
         [0053]    The embedder may now either submit a new registration request file or logoff of the registration web site  106 . 
         [0054]    The registration loader  122  uses the information contained in the embedder&#39;s uploaded registration request file to automatically allocate (register) watermark identifiers in a registration database  110 . The identifiers are in the form of serial numbers. Once this process is completed, the registration loader  122  initiates a request to a registration extractor  124  for these new registration entries. 
         [0055]    Upon receipt of a request, the registration extractor  124  accesses the registration database  110  and creates embedder control files for each of these new registered watermark identifiers (e.g., serial numbers). 
         [0056]    Upon completion of this process, the registration extractor  124  process sends the embedder control file(s) back to the embedder via Internet e-mail. In the event that the embedder is server based, the extractor sends the control file(s) (or a pointer to them) to the embedder server  126 , which may be integrated with the registration system or implemented at a different Internet site. The extractor  124  also sends an update  128  to the behavior database  114  to create database records associating each of the watermark identifier with a behavior. 
         [0057]    Once the embedder  120  has received the embedder control file(s), it uses these file(s), along with the media file(s) (in this case, image files) and a set of embedding instructions to the embedder  120  to instruct the embedder to automatically embed the list of watermark serial numbers included in the embedder control file(s) into the listed media files, producing a set of watermark-embedded media files. In the case where the embedder is server based, the client executing on the PC  100  uploads the media files to be embedded to the embedder server, either directly or as part of the registration process (e.g., as part of the request file). The embedder server then returns the watermarked files to the computer  100  via e-mail or other network file transfer protocol. 
         [0058]    For detailed disclosure describing how to embed watermarks in media signals, including images, audio, and video, see U.S. Pat. No. 5,862,260, and co-pending application Ser. No. 09/503,881, filed Feb. 14, 2000, incorporated above. 
         [0059]    The embedder may create watermarked objects by printing watermarked images on objects, such as stickers, documents, etc. The embedder sends the watermarked image to a printer  128 , which in turn, prints the image on an object. 
         [0060]    The above system provides a mechanism for linking objects to machine behaviors. As noted previously, this mechanism applies to both physical objects, like stickers and packaging, and electronic objects, like image, audio and video signals. It also applies to other forms of machine readable signal carriers that can be applied to such objects, including bar codes, magnetic stripes, Radio Frequency tags, integrated circuit chips, organic transistors, etc. These machine readable carriers can be used in the same way that watermarks are used in the example of watermarked enabled stickers above. 
         [0061]    While these technologies provide a mechanism for linking objects to machine behaviors, there is a need for a tool that explicitly facilitates the creative coordination between the object and the behavior linked to it. The linking process results in a potentially complex database structure which not only embodies the fundamental object to behavior link, but also might include a hierarchy of delivered responses as a function of user implicit or explicit requests. Or, said in a quite different way, the creative process of linking an object to complex data-driven responses is itself a creative endeavor all to itself, involving thinking through the various different reactions that users will want and expect when using an object as a portal. The artist who is tasked with creating the choreography between an object and a simple or complex machine behavior will need explicit assistance from well designed tools, resulting in a database record which memorializes that creativity as an active element within a connectivity system described in this document and U.S. patent application Ser. No. 09/571,422. The immediate creative output is a database structure. The long term creative output is the active use of that structure as a stimulus-response hub. 
         [0062]    Whether a link design tool be web-server based, or whether it be a stand-alone application similar in kind to an Adobe Photoshop or a Quark Express, it is possible to offer visual metaphors to a creative designer which literally presents that designer with an image of the to-be-linked object along with explicit visual links to one or more data responses. 
         [0063]    One embodiment of this tool for linking printed objects to web pages is a local computer application which presents an image of a printed object on the left side of an application&#39;s window pane and the image of a web page on the right side of the application pane. The images of the printed objects may be stored locally or fetched from a remote device (e.g., a content database) and rendered to the left side of the screen. Similarly, the web pages may be stored locally or downloaded from web sites on the Internet or some other network. The user interface of the application displays a control such as a button, labeled, “Connect”, “Link” or some other active word representing the process of associating an object with a corresponding machine behavior. The user, having browsed through a series of objects to be linked, and browsed through a series of potential web site destinations, finding the best “matched-pair”, pushes the button and off this relational link goes into a queue waiting to “go live”, or, in other words, a temporary record is stored for a candidate link to be sent to the behavior database of the linking system described previously. A user can perform multiple links per session, queueing them up as they go, reviewing the queue at some point in time, then directing the links to become active at the behavioral database, as described previously and in the referenced documents. 
         [0064]    An extension begins by generalizing the single printed item to be an icon or visual analogy to a related set of printed material. Graphical user interface methods can be employed to move, manipulate, view and otherwise process this icon in a fashion familiar to creative professionals. Likewise, surrounding this generalized icon representing the object(s) to be printed can be a whole series of icons representing a variety of potential data-delivered responses that are possible links. Existing web pages, placeholders for web pages to be designed, streaming media icons, Java application icons, “links to links” icons wherein a given response may explicitly point to a menu of actions presented to the end user. (end user=consumer doing the linking). This list of possible responses is incomplete but nevertheless representative of graphically displaying the possible relationships between printed material and data responses. 
         [0065]    As in the baseline case, various relationships can be created between objects and responses, ultimately stored into a queue. The actual functionality and quality assurance of the links could be tested in the process. Once the creative artist is satisfied with their link or set of links, the queue can be sent to go live at the behavior database and further double checks on quality performed. 
       CONCLUDING REMARKS 
       [0066]    Having described and illustrated the principles of the technology with reference to specific implementations, it will be recognized that the technology can be implemented in many other, different, forms. To provide a comprehensive disclosure without unduly lengthening the specification, applicants incorporate by reference the patents and patent applications referenced above. 
         [0067]    While the technology is illustrated with reference to watermarked stickers, aspects of the technology apply to other object types including media signals like audio and video. There are number of different watermark embedding and decoding methods that may be used. The watermark embedding process may modulate features of a signal in the time, frequency, spatial or some other transform domain of the signal to be watermarked. 
         [0068]    In addition to an object identifier, the watermark may be used to convey other information, such as an index to related metadata, rendering control instructions, etc. For example, the watermark can carry a network address or index to a network address to link the watermarked signal to a network resource such as a related web site. 
         [0069]    Other machine readable codes may be embedded in an object and used to link the object to a machine behavior. Some examples include bar codes, magnetic stripes, RF tags, etc. The devices and methods used to extract an identifier from the machine readable code differ, yet the process for registering identifiers and associating behavior with objects may be similar. 
         [0070]    The methods, processes, and systems described above may be implemented in hardware, software or a combination of hardware and software. For example, the auxiliary data encoding processes may be implemented in a programmable computer or a special purpose digital circuit. Similarly, auxiliary data decoding may be implemented in software, firmware, hardware, or combinations of software, firmware and hardware. The methods and processes described above may be implemented in programs executed from a system&#39;s memory (a computer readable medium, such as an electronic, optical or magnetic storage device). 
         [0071]    The particular combinations of elements and features in the above-detailed embodiments are exemplary only; the interchanging and substitution of these teachings with other teachings in this and the incorporated-by-reference patents/applications are also contemplated.