Abstract:
A system and related techniques are provided in the present invention, which generate an interrogation request from an initiator device, to a mobile or other media player. The binary objects which encode the content may include or have associated with them a set of corresponding object properties which help to define each object. According to embodiments of the invention, the initiator may communicate with the responding device using a media-aware protocol such that the initiator may identify one or all of the set of properties paired with all of the objects to be returned. The initiator may then present the objects along with the corresponding properties to a user to manipulate. Because properties may be retrieved in conjunction with, at the same time and using a unified retrieval scheme, the need to query each object identifier one by one for associated properties is removed.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
   The subject matter of this application is related to the subject matter of co-pending U.S. patent application Ser. No. 10/429,116 filed May 2, 2003 entitled “System and Method for Facilitating Communication Between a Computing Device and Multiple Categories of Media Devices”, assigned or under obligation of assignment to the same entity as this application, and which application is incorporated by reference herein. 
   STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
   Not applicable. 
   FIELD OF THE INVENTION 
   The invention relates to the field of computing, and more particularly to a platform which enables a client or other initiator to request an enumeration of objects stored on a portable media or other device, such as an MP3 player or digital camera, and efficiently retrieve a list of those objects along with their associated properties. 
   BACKGROUND OF THE INVENTION 
   The proliferation of portable media devices such as MP3 music players, digital cameras, media-enabled cellular telephone and others has encouraged the exchange of media objects of many types. For example, a user who wishes to view the contents of a digital camera may attach that device to their computer or other client, to view the collection of photographs stored on the memory card of that device, for instance to choose selected pictures to upload, print or delete. Music files are another commonly exchanged media object. 
   As illustrated in  FIG. 1 , when a user operating a client or initiator sends a request to the portable media device to see a list of all stored media objects, the device&#39;s built-in intelligence may mediate that request to access the internal content list. Many or most media players store content in object format, in which the media object such as a sound file or digital photograph stored in binary format is paired with a set of properties or attributes describing that object. For example the properties may include a codec type for sound files, a color depth for digital photographs, or other attributes or characteristics. It may be necessary for the device reading those objects to have access to the properties as well as the underlying object, to play or consume them. 
   When the user is asking for a list or enumeration of those objects, the media device may according to known protocol technologies respond with a content list or ID list which identifies the set of songs, photographs, video clips or other objects or media stored on the device, in total. However, according to known transfer protocols that type of responsive data does not include the set of properties paired with each object (nor the objects themselves). Among other things, this means that the initiator can not determine attributes for the media inventory which it has just received, so that for example the play time, artist, language or other properties of a set of songs can not be viewed just by retrieving the content list. Rather, the portable media device must sequentially request the set of properties paired with each object identified in the content list which has been retrieved, one after the other. In another regard, this may mean that all media objects on the portable device must be parsed to locate a single song, photograph or other content of interest. 
   However, the storage subsystems of such portable media machines may often be optimized for the device&#39;s own internal access purposes, and not for external delivery. Moreover, because the access time for the storage embedded in the media device, for example a CD-ROM drive, microdrive or other rotating or electronic media, as well as internal processing throughput is typically significantly slower than the access or processing time of the initiating client, the need to separately request the properties for each object can create a substantial access bottleneck. 
   On for example a portable music device storing hundreds or thousands or MP3 or other audio files, this may amount to delays of many minutes or more as the initiator is forced to transmit hundreds or thousands of object property requests to the device, even when those requests and the response are transmitted over relatively fast connections such as USB 2.0 or Firewire™ connections. Other problems in media object management and portability exist. 
   SUMMARY OF THE INVENTION 
   The invention overcoming these and other problems in the art relates in one regard to a system and method for optimized property retrieval of media objects, in which an initiator may communicate with a responder using a media transfer protocol whose characteristics permit the flexible exchange of objects and their accompanying properties, on an aggregate level. In embodiments of the invention in one regard, the initiator may send an enumeration request to a portable media or other device, which request may encode the selection and retrieval of one or more properties which may be associated with each object. That enumeration request may be processed for each object stored on the device, without the need to separately request the properties for each object located. The properties for each object may be returned in a well-defined data structure which the initiator may efficient detect and decode. The cycle time for accessing and viewing the content list along with all associated properties on a portable media device may therefore be significantly improved. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  illustrates exemplary retrieval of media object properties, according to known protocol technologies. 
       FIG. 2  illustrates an environment in which a system for optimized property retrieval may operate, according to embodiments of the invention. 
       FIG. 3  illustrates an aggregate object property retrieval code, which may be used in object property retrieval according to embodiments of the invention. 
       FIG. 4  illustrates a data schema for a responsive set of object properties, according to embodiments of the invention. 
       FIG. 5  illustrates a flowchart of overall object property retrieval, according to embodiments of the invention. 
   

   DETAILED DESCRIPTION OF EMBODIMENTS 
     FIG. 2  illustrates an architecture in which a system and method for optimized retrieval of object properties may operate, according to an embodiment of the invention. As illustrated in that figure, a user may operate a client computer or other initiator  104 , for example via a user interface  102  to initiate media object retrieval activities, including streamed or aggregate retrieval of media object properties. According to the invention in one regard, the retrieval operations may be performed on media objects and associated data stored on a media player or other responder  118 . The responder  118  may be or include, for example, an audio player or playback device such as an MP3 (MPEG-1, Audio Layer  3 ), Windows™ Media Audio player, Advanced Audio Coding (AAC) or other audio device, a digital camera such as a digital camera storing JPG (Join Photographic Experts Group) or other files or objects, a digital camcorder such as a digital video (DV), miniDV, digital versatile disk (DVD) or other video capture or playback device, a media-enabled cellular telephone such as a digital camera-equipped cellular device, a personal digital assistant or other platforms, hardware or devices. 
   The responder  118  may host or contain a set of media objects  126  encoding the audio, video, image or other media or content stored thereon. The set of media objects  126  may include, for example, a set of audio objects, such as music, voice recordings or other audio content, digital photographs such as those downloaded from a digital camera, from a photo sharing or other Internet site, or other source, a set of video objects such as DV-compatible video clips, or other objects, media or content. The responder  118  may store the set of media objects  126  in or organized by a media directory  124 , which may be or include a file hierarchy or indexing format for storing or accessing the set of media objects  126  to or from a hard drive, flash memory, optical drives such as CR-ROM or CD-ROM R/W, DVD or other magnetic, optical, electronic or other media stores. The responder  118  may communicate with the initiator via a connector  112  such as a universal serial bus (USB) 2.0 connection, FireWire™ connection or other wired or wireless port, interface or connection. The responder  118  may operate under control of embedded device logic  122 , which may be, include or interface to a microprocessor, microcontroller, digital signal processor or other control circuitry, along with for instance firmware or other programming. Responder may include an interface  120  such as an LCD screen to display media object data and other information, such as song lists, photograph slideshows or other data or displays. 
   In operation of the invention according to embodiments as shown, the user may for instance manipulate the user interface  102  to choose a media object retrieval function, for instance via a media engine  106  which may be in communication with an operating system  108 , such as the Windows™ family of operating systems or others. When object enumeration is desired, the media engine  106  may generate a media enumeration request  114  passed through operating system  108  and communicated to the responder  118 , for example, via a media transport protocol  110 . The media transport protocol  110  may in embodiments be or include, for example, the protocol described in the aforementioned U.S. patent application Ser. No. 10/429,116 or other protocols or standards. 
   The media enumeration request  114  so generated is in one regard not limited to a retrieval mechanism whereby only a list of media object identifiers may be globally retrieved, necessitating further requests and overhead to view the properties or attributes coupled to those objects. Rather, according to embodiments of the invention, the media enumeration request  114  may be configured and enabled to request object properties for some or the entire collection of objects in responder  118 , in one command structure. In that regard and according to embodiments of the invention illustrated in  FIG. 3 , the media enumeration request  114  include a dedicated command structure, illustratively an aggregate object property command  128  whose parameters and execution permit the retrieval of object properties for some or all of the set of object properties associated with various of the set of media objects  126 . More particularly and as shown, the aggregate object property command  128  may include a command header  136 , illustratively designated as “GetObjectPropList”. Other command names or designations may be used. 
   The aggregate object property command  128  may likewise contain a set of parameters  130 , illustratively five in number although in implementations, other numbers or types may be used. The set of parameters  130  may include for example an object handle as Parameter  1 , permitting the initiator  104  to specify a specific ObjectHandle for which it wishes to retrieve property, attribute or metadata information, or in desired cases a predetermined value indicating that property data is desired for all available media objects. The set of parameters  130  may include an object format code as Parameter  2 , which for example may permit the request to be constrained to objects of a particular type, such as an audio, graphical or other type amongst all types or categories of objects in the set of media objects  126  stored on responder  118 . 
   The set of parameters  130  may likewise include an object property code as Parameter  3 , for example to constrain or specify the type or types of properties, attributes or metadata to be retrieved for objects identified by other of the parameters. The set of parameters  130  may furthermore include an object property group code as Parameter  4 . According to this parameter the initiator  104  may specific a collection of object properties which will be needed from all retrieved media objects in the set of media objects  126 . For instance for a responder  118  storing audio objects, the object property group code may indicate that song title, artist, album name and year of release will be retrieved for all media objects. According to embodiments of the invention in one regard, the initiator  104  may therefore specify desired object properties or all available properties for all of the set of media objects  126 , by issuing one command containing an appropriate object property group code. The set of parameters  130  may likewise contain a storage ID as Parameter  5 , to indicate for example that a hard disk or other media will be accessed. Other parameter types, numbers and orders are possible. 
   As illustrated for example in  FIG. 4 , when the responder  118  receives the media enumeration request  114  contained the aggregate object property command  128  including one or more of the set of parameters  130 , the device logic  122  of the responder  118  may process that request against the set of media objects  126  stored in its media directory  124  or otherwise to generate a resulting media object list  116 . As shown the media object list  116  may be structured to contain a retrieved data header  132 , illustratively contained a total number count of the data tuples contained in the responsive media object list  116 . Those tuples may be contained in a set of retrieved media object parameters  134 , illustratively containing at least a 4-tuple of data including an object handle, a property code, a data type and a value for each of the set of media objects  126  whose properties or metadata are being retrieved. Additional fields or data may be associated with each object handle or other key, and other data formats or arrangements may be used. 
   The media object list  116  may be received by the initiator  104 , and for example sorted on one or more of the parameters contained in the set of retrieved media object parameters  134 , such as for example to show the most recently dated photographic image objects first. Other sorts or orderings by initiator  104  are possible. According to aspects of the invention, the ability to sort, reorder and manipulate the media object list  116  may be significantly speeded up compared to attempting to order the set of media objects  126  for retrieval purposes on responder  118  itself. That is a result of the fact that in many cases initiator  104  may have substantially faster storage, memory, processor and other resources available to it than the often comparatively lightweight resources of responder  118 , which may be optimized for other purposes, such as power consumption or stored data size. 
     FIG. 5  illustrates a flowchart of overall media object property retrieval, according to embodiments of the invention. In step  502 , processing may begin. In step  504 , the initiator  104  may generate a media object enumeration request  114 . In step  506 , the media object enumeration request  114  may be transmitted to responder  118 , such as a portable media player or device, for instance an MP3 or other audio player, a digital camera or digital video camcorder, a media-enabled cellular telephone, a personal digital assistant or other device or hardware. In step  508 , the device logic  122  of responder  118  may receive the media object enumeration request  114 . In step  510 , the device logic  122  may in implementations authenticate the media object enumeration request  114  as appropriate, such as by prompting the user via interface  102  for a user name, password, media serial number or other identifier or authorization data. In further embodiments no authorization prompt may be generated. 
   In step  512 , the device logic  122  may decode the media object enumeration request  114 , for example by reading an aggregate object property command  128  and associated headers and fields, or other commands or instructions. In step  514 , the media directory  124  of the responder  118  may be accessed, for instance to access directories or trees of media objects, or other data or storage structures. In step  516 , the device logic  122  may generate a media object list  116  in response for transmission to initiator  104 , for example by searching for specified object properties from within sets of properties associated with objects in set of media objects  126  stored on responder  118 . According to embodiments of the invention in one regard, the set of media objects  126  need not be sorted or organized in a hierarchical or other special order before beginning a transmission stream to initiator  104 . Rather, the device logic  122  may transmit a binary stream to initiator  104  without ordering or reordering the set of media objects  126  or their coupled properties, so that, for instance, the retrieved object property data may be streamed the in order in which it is stored on hard disk, optical or other storage of responder  118  to initiator  104 . 
   In step  518 , the resulting media object list  116  including media object properties matching the media enumeration request  114  may be sorted or otherwise processed in initiator  104 . For example initiator  104  may present a table of songs, photographs, video samples or other media or content to the user via interface  102 . In step  520 , the user may highlight, select, link or activate select those media objects from the media object list  116  which the user wishes to download, delete, burn to optical media, copy, edit or perform other actions or tasks on. In step  522 , processing may repeat, return to a prior processing point, jump to a further processing point or end. 
   The foregoing description of the invention is illustrative, and modifications in configuration and implementation will occur to persons skilled in the art. For instance, while the invention has generally been described in terms of the retrieval of a set of properties retrieved from a portable media device storing a set of associated media objects, in embodiments non-portable devices may be interrogated for object property retrieval, such as other desktop client or other machines. While those media objects have generally been illustratively described as being or including audio, video, or graphical content, in embodiments the set of media objects may likewise contain textual, character, numerical or other information, for example such as contact lists in a personal digital assistant, or data measurements or objects such as those retrieved from telemetry, medical or diagnostic hardware along with object properties corresponding to those applications. Likewise, while the initiator device has in embodiments generally been described as a desktop client or workstation, in embodiments the initiator could be or include a portable device such as a media-enabled cellular telephone, digital camera, audio player or other device or hardware. Portable devices moreover may interrogate each other, in implementations as desired. 
   Similarly, while the invention has in embodiments been described as operating in an environment in which a locally connected initiator interrogates a mobile media player or device, in embodiments the aggregate object property request and other queries may be transmitted from a remote initiator, such as a remote workstation or server connected over a local area network (LAN) or the Internet. Likewise, while the invention has generally been described as querying a single storage device or medium embedded in a mobile media device, in embodiments the object properties from two or more storage devices, such as two or more hard drives or two or more optical drives, may be collectively interrogated. Other hardware, software or other resources described as singular may in embodiments be distributed, and similarly in embodiments resources described as distributed may be combined. The scope of the invention is accordingly intended to be limited only by the following claims.