This disclosure relates in general to the field of file system management and, more particularly, to providing virtualized file system management for a memory card in a digital environment.
Digital media has become ubiquitous in the 21st century. For example, digital images, music downloading, and file sharing have gained notoriety in recent years. However, maintaining or updating digital information is typically inconvenient, cumbersome, and time consuming for individuals utilizing this particular type of media. In many cases, there are a number of steps that must be completed to keep a digital library current. As a general proposition, the intelligent management of digital media information presents a significant challenge to equipment vendors, device manufacturers, and system designers alike.
To provide a more complete understanding of the present disclosure and features and advantages thereof, reference is made to the following description, taken in conjunction with the accompanying figures, wherein like reference numerals represent like parts, in which:
An example method is provided and includes receiving a request for a selected digital file and mapping the request for the selected digital file to a replacement digital file. The mapping includes a virtual association between the selected digital file and the replacement digital file that is stored at a destination accessed over a network. The method also includes communicating bytes corresponding to the replacement digital file to a digital device to satisfy the request. In more particular embodiments, the digital device includes a cached table of files, where each of the files includes a respective file size, a respective file name, and a respective memory address. The replacement digital file can be ultimately presented on a display of the digital device.
In more specific embodiments, the replacement digital file is compressed to a different size before being communicated to a next destination. In yet other embodiments, null bytes are added to the replacement digital file in order to comport to a particular size format designated by the digital device. Other embodiments can include the replacement digital file being converted to a particular format based on a designation by the digital device. The request can be associated with metadata that identifies a file size, a file type, or a file address associated with the selected digital file.
Turning to
Digital frame 12 is a digital device, which can render digital data stored thereon, provided thereto, or provided via any suitable communications pathway, as detailed below. Additionally, digital frame 12 can determine an order of presentation for a set of selected digital media files through a parsing of an index associated with each of the selected media files. In accordance with certain example implementations of system 10, digital frame 12 can render significantly more files of digital media than would be permitted on a conventional memory card. This ability can be enabled through utilizing a virtual memory mapping on VMMC 28 (i.e., within digital frame 12 itself).
In operational terms, consider an instance where an individual has ten different digital frames at his residence. Manually loading each individual picture frame with images would be time-consuming, as well as organizationally challenging. Ideally, a single memory card of some type could include the family pictures to be uploaded to the digital frames (e.g., a single memory card for a beach vacation, a single memory card for a piano recital, etc.). System 10 can enable a single VMMC 28 to be inserted into any of these ten digital frames, where VMMC 28 is logically accessing a full playlist over a wireless network. Note that the individual storage mechanism (i.e., the individual memory card) may not be sufficient to hold all of the images of the entire family picture album. Consider a case where only 1 megabit of memory space is provisioned in a given memory card. The features of system 10 can still permit VMMC 28 to suitably display all of the images in the family picture album (which could represent 1 gigabyte of memory, or higher). In a general sense, regardless of the digital device and regardless of the memory space, VMMC 28 can systematically access any images of the family picture album by accessing its connection to the configured playlist.
In more specific operational terms, VMMC 28 can provide dummy metadata to digital frame 12 (e.g., during an initial boot-up of digital frame 12). The metadata can pertain to stored file names, sizes, and/or memory address locations of files stored in VMMC 28. Hence, metadata characterizes information based on the inherent properties of the data. Additionally, dummy data can be used for a subsequent virtual mapping, where this dummy metadata information can be cached in digital frame 12. The dummy metadata would not be overwritten until a next boot-up of digital frame 12. Digital frame 12 is configured to request various digital media files using the cached dummy metadata information provided by VMMC 28. In response, VMMC 28 is configured to virtually map the fixed and the cached dummy metadata (received from digital frame 12) to a variable number of downloaded files. These files can be replaced with downloaded files, where the replaced files (or the bytes corresponding thereto) can be sent to digital frame 12 for a suitable presentation of the image data to the user.
In executing this virtual mapping, VMMC 28 can offer a stable file system to digital frame 12, while being able to automatically download files from any network location. Additionally, this can be achieved without upgrading digital frame 12 to include a complex wireless capability for file downloading. In one general sense, system 10 can offer an economically viable solution for presenting a variety of digital media (having a wider variety of attributes), than could otherwise be offered by conventional memory cards.
Before detailing more specific operational capabilities of system 10, it is important to understand some of the limitations of current digital media architectures. The following foundational information may be viewed as a basis from which the present disclosure may be properly explained. Digital media architectures can present digital photographs, video clips, sound clips, music, etc. to a user. When a user gathers new digital files (e.g., takes pictures using a digital camera, records a video of a recent event, downloads music from a website, etc.), typically the user seeks to update the digital media device to reflect this recent information. For example, updating digital photos on a conventional photo frame device (e.g., a digital media frame, an electronic display, a liquid crystal display (LCD)) requires a physical manipulation of devices. Hence, when a person seeks to put the latest photos on a conventional photo frame device, the following steps occur. First, the photos are downloaded from a camera to the computer. This could be done automatically over a wireless network in certain instances (e.g., using an Eye-Fi card). Second, the conventional memory card from the photo frame device is removed, and then inserted into a computer. From the computer, the selected photos can be copied over to the conventional memory card. The memory card can then be removed from the computer and reinserted into the photo frame device. As is evident, such a process is unnecessarily time-consuming and, further, involves repeated participation from a given user.
As a separate operational challenge, the photo frame is typically manufactured and deployed with software for downloading pictures. Such downloading may include wireless capabilities, which can involve either a modification of the photo frame, or a replacement of photo frame software with a version that could accommodate the wireless downloading. Similarly, these limitations and issues apply equally to televisions and audio-visual (AV) equipment, which can include memory card readers to display the digital media.
Other digital media devices allow photos, music, and movies to be stored either in an internal memory, or in a removable conventional memory card. In both cases, media data is updated via a universal serial bus (USB) cable. In other instances, a conventional digital media device can have a cellular connection, which is associated with a phone number to which pictures can be sent. Still other digital media architectures have introduced wireless or modem-based frames into the market space. However, these digital media technologies are universally more expensive than their equivalents in the non-wireless digital media technology space. Moreover, most of these more sophisticated architectures require a monthly subscription. Yet other digital media devices fail to include a wireless web-based connectivity option due to increased cost and/or such an option is impractical because of the obligations imposed on a user for device configuration. Note that most individuals seek simplicity in using their digital media devices, where the responsibility in setting up a network device can represent a point of frustration. Ideally, a given individual seeks to minimize the number of times they are required to configure their network connections.
Certain hybrid digital media devices have emerged that include some combination of an intermediate data storage and a wireless card. The data storage mechanisms are designed to receive image data from a digital camera, where the data storage mechanism can publish or push its media files to a computer or to a website via a wireless connection. Still other devices can use a secure digital (SD) memory or a flash form factor memory, which allows for the addition of wireless connectivity to an existing personal digital assistant (PDA) or other wireless device. These wireless devices would necessarily have additional software on the PDA to support the memory card.
System 10 can address certain shortcomings associated with the limitations of existing digital media devices in the following ways. In one particular implementation, VMMC 28 is provisioned to provide a dummy index of all media presentation files to digital frame 12. This dummy index can be provided when digital frame 12 is initiated (e.g., booted, rebooted, etc.). Digital frame 12 can then cycle through the media file cache entries as appropriate: reading them from VMMC 28 as needed. Although VMMC 28 presents digital frame 12 with media presentation files as triggered by a request emanating from digital frame 12, the media presentation files VMMC 28 conveys to digital frame 12 are not necessarily the actual media files being requested. In other words, VMMC 28 virtually ‘remaps’ requests into other media presentation files, where these operations can include modifying the replaced and remapped file. This remapping and replacement is unknown to digital frame 12, which nonetheless displays or otherwise broadcasts the replaced, remapped digital media information. In one general sense, this virtual remapping of media presentation files by VMMC 28 enables a user to view digital media presentations that can be stored elsewhere in a network: without having to upgrade digital frame 12 for wireless capabilities, and without requiring a physical removal and reinstallation of the memory card.
Note that such operations can apply equally to any digital data devices, apart from the example photo frame devices discussed herein. Such activities can be readily applicable to various other media presentation equipment, which may have a physical flash media interface. Note that modern televisions and AV equipment have added memory card readers, which could readily adopt the teachings of the present disclosure, as detailed below.
Turning to
As depicted in
VMMC 28 also can include software capable of securely connecting to a computer on the same network. However, in other embodiments, VMMC 28 includes a wireline or fixed element, which is not illustrated for purposes of simplification.
In one particular example, file share device 50 includes a network file service 54. Network file service 54 can include a network file service table 56, which can include several different files (having different sizes and which reflect different types of digital media presentation information). Note that network file service table 56 can include a greater number of files than the number of files accounted for by cached table 52. For example, and as depicted by
Operationally, and with reference to the capabilities of VMMC 28, upon boot-up of digital frame 12, memory interface 38 can be given information regarding file size, name, and/or a starting address of digital files stored in VMMC 28. These are effectively dummy pieces of information that can be stored in cached table 52. File share device 50 loads a plurality of files into VMMC 28, where these files can be of differing sizes, formats, and can be of a greater number than is recognized by digital frame 12. File mapping module 46 can receive a request from memory interface 38 for certain files referenced in cached table 52. Then, file memory mapping module 46 virtually maps files received from file share device 50 into the requested file, and then replaces the requested file with the virtually mapped file. This replaced, virtually mapped file is then sent to digital frame 12. Digital frame 12 ultimately displays the replacement file, rather than the originally requested file.
In some embodiments, VMMC 28 can employ any number of preprocessing operations to further manipulate the digital data. For example, VMMC 28 may compress a downloaded (larger) file into a standard size. VMMC 28 may also add null bytes in order to pad a file to a standard size format. VMMC 28 can further perform a file type conversion to convert a file into a standard presentation format, such as JPEG, which can readily be displayed by digital frame 12. In one particular example, the preprocess conversions are utilized such that the replaced converted files are presented to digital frame 12 in a manner consistent with the dummy data being stored in cached table 52. In one embodiment, JPEG file formats are a final (e.g., or default) format delivered by VMMC 28, where any number of file formats such as .GIF may be converted to a JPEG file format with minimal impact on processing time.
After receiving a digital media file from VMMC 28, digital frame 12 attempts to open and read one of the delivered images. Since VMMC 28 understands the sectors to which each virtual picture correspond, VMMC 28 can fulfill an incoming request with image data received from wireless element 40. Also, because JPEG and GIF have size information in their headers, picture-processing software of VMMC 28 may ignore extra bytes of image data that is unnecessary. Digital frame 12 can either randomly access pictures or sequentially access them.
In the context of network scenarios, although digital frame 12 is notified that VMMC 28 has a limited number of pictures (e.g., memory interface is informed that only ten pictures are stored in cached table 52 (named: 0001.jpg, 0002.jpg, . . . )) VMMC 28 can have one hundred pictures that it can access wirelessly from file share device 50. For example, if network file service table 56 holds one hundred pictures (named: L1001.JPG, L1002.jpg, . . . ), then the first time digital frame 12 requests ‘0001.JPG’, VMMC 28 can return ‘L1001.JPG’ (padded with nulls to meet the specified size). In one embodiment, VMMC 28 stores at least some of these downloaded pictures in memory card 29.
To enable a user interface to configure wireless element 40 or VMMC 28 settings, VMMC 28 can choose to return a configuration/setup picture to digital frame 12, when VMMC 28 has detected that wireless element 40 is not yet configured. If VMMC 28 includes some type of user interface (e.g., such as a button to initiate/confirm setup), and this interface is yet to be activated, VMMC 28 can continue to return a setup image for any picture that digital frame 12 requests, such that the setup screen remains viewable for the user. Furthermore, because the mapping of real pictures is virtual, VMMC 28 can choose the order of pictures that the user sees: regardless of the order being requested by digital frame 12. In various embodiments, either VMMC 28 or network share device 50 can convert images in any form to a common one such (e.g., JPEG being a universal format for this particular environment). Hence, even if the file on the server is a .GIF, VMMC 28 or file share device 50 can provide a suitable format by converting the requested image data, or by adjusting a file size where appropriate.
As part of its operational capabilities, when digital frame 12 boots-up, it can determine a size and a set of characteristics for files within memory card 29. This determination can include querying VMMC 28 through various interactive mechanisms, where VMMC 28 can return a broad variety of memory sizes. In one example implementation, the returned memory size can be a function of the actual physical memory on VMMC 28, where these boundaries can be correlated to the limitations of memory card 29. Note that the returned memory size need not be the actual size of the memory of VMMC 28, or of memory card 29. This memory information is then stored in cache table 52 of memory interface 38. In one particular example, the memory allocations in cache table 52 can also be provisioned in file mapping module 46.
When requesting media files, digital frame 12 can request data corresponding to sectors that correspond to its stored directory associated with VMMC 28. VMMC 28 can return replaced entries that correspond to files of sequential numbered values with a given fixed size, where these are selected from network file service table 56 and suitably mapped by file mapping module 46. Subsequently, digital frame 12 may choose to reread cached table 52 in order to request another photograph to display, and VMMC 28 can return different members of the same consistent set of replacement media files until a next virtual remapping occurs. In addition, VMMC 28 has the intelligence to recognize that the digital frame is continuing to read from a previously requested file by monitoring requests for data. If a request is received for the start of the file, and if a previous request was for a part of a different file, VMMC 28 could assume that it can safely substitute any file. Otherwise, VMMC 28 can safely return the same mapped file for the reads for parts of that file.
Turning to
Network 80 can be a wired network or a wireless network. Server 84 can be any one of a variety of file sharing devices, network appliances, processor components, modules, etc.: all of which are included within the broad term ‘network element.’ In this particular example, television 60 includes VMMC 61, which includes a memory card 62, a file mapping module 64, and a processor 66. Processor 66 may be used in making various selections or determinations regarding files to be requested, ordering of the files that are requested, rendering the files being delivered, etc. Various files can be downloaded from server 84 (or from any other network destination) and suitably stored in various formats within VMMC 61.
In some embodiments, network 80 represents a series of points or nodes of interconnected communication paths for receiving and transmitting packets of information that propagate through network 80. Network 80 offers a communicative interface between network elements, digital media devices, etc. and may be any local area network (LAN), wireless LAN (WLAN), metropolitan area network (MAN), wide area network (WAN), extranet, Intranet, virtual private network (VPN), virtual local area network (VLAN), or any other appropriate architecture or system that facilitates data propagation in a network environment. Network 80 can support a transmission control protocol (TCP)/Internet protocol (IP), or a user datagram protocol (UDP)/IP in particular embodiments of the present disclosure; however, network 80 may alternatively implement any other suitable communication protocol for transmitting and receiving data packets within system 10. Network 80 can foster various types of communications and, further, can be replaced by any suitable network components for facilitating the propagation of data between participants in a conferencing session.
Note that server 84 and digital media devices may share (or coordinate) certain processing operations. Using a similar rationale, their respective memory elements may store, maintain, and/or update data in any number of possible manners. Additionally, because some of these processing and memory elements can be readily combined into a single unit, device, or server (or certain aspects of these elements can be provided within each other), some of the illustrated processors and memory elements may be removed, or otherwise consolidated such that a single processor and/or a single memory location could be responsible for certain activities associated with digital media management control. In a general sense, the arrangement depicted in
In one example implementation, VMMC 28 and/or VMMC 61 includes software (e.g., as part of file mapping modules 46, 64) to achieve the virtual memory mapping operations, as outlined herein in this document. Alternatively, several appropriate elements may include software (or reciprocating software) that can coordinate in order to achieve the operations, as outlined herein. In still other embodiments, certain elements of the illustrated FIGURES may include any suitable algorithms, hardware, software, components, modules, interfaces, or objects that facilitate these virtual mapping and substitution operations.
Turning now to
Then, in step 460, VMMC 28 provides a replacement mapped file to the media presentation device. For example, VMMC 28 can map ‘Fun Pic.GIF’ to the requested file and also perform various preprocessing steps. This could include JPEG conversion, compression operations, which may meet the expectations of memory interface 38. Regardless of the number of preprocessing operations that occur, VMMC 28 communicates the requested image data (e.g., potentially reformatted and resized image data) to digital frame 12. In step 470, digital frame 12 presents the replacement media presentation file to a user. This presentation can include a digital photo, a video clip, an audio presentation, image data generally, etc.
Turning to
In step 540, a determination is made as to whether the mapped filed needs to be preprocessed (e.g., converting a file type, changing a file size, etc.). If yes, then in step 545, the mapped file is preprocessed by VMMC 28. In no, the mapped, replaced file is sent to the digital media device at step 550. In step 560, the digital media device presents the replacement file. In step 570, it is determined whether the digital media device requests another digital media file. If yes, the method can return to step 510; otherwise, this particular flow ends.
Note that in certain example implementations, the various mapping or interface functions outlined herein may be implemented by logic encoded in one or more tangible media (e.g., embedded logic provided in an application specific integrated circuit (ASIC), digital signal processor (DSP) instructions, software (potentially inclusive of object code and source code) to be executed by a processor, or other similar machine, etc.). In some of these instances, a memory element of system 10 can store data used for the operations described herein. This includes the memory element being able to store software, logic, code, or processor instructions that can be executed to carry out the activities described in this Specification. A processor can execute any type of instructions associated with the data to achieve the operations detailed herein in this Specification. In one example, the processor (as shown in
In one example implementation, VMMCs 28, 61 include software in order to achieve the mapping management functions outlined herein. These activities can be facilitated by server 84 and/or file share device 50. VMMCs 28, 61, file share device 50, and/or server 84 can include memory elements for storing information to be used in achieving the virtual memory mapping as outlined herein. Additionally, VMMCs, 28, 61, file share device 50, and/or server 84 may include a processor that can execute software or an algorithm to help perform the mapping of files, as discussed in this Specification. These devices may further keep information in any suitable memory element (random access memory (RAM), ROM, EPROM, EEPROM, ASIC, etc.), software, hardware, or in any other suitable component, device, element, or object where appropriate and based on particular needs. Any possible memory items (e.g., database, table, cache, etc.) should be construed as being encompassed within the broad term ‘memory element.’ Similarly, any of the potential processing elements, modules, and machines described in this Specification should be construed as being encompassed within the broad term ‘processor.’
Note that with the examples provided herein, interaction may be described in terms of two or three elements. However, this has been done for purposes of clarity and example only. In certain cases, it may be easier to describe one or more of the functionalities of a given set of flows by only referencing a limited number of network elements. It should be appreciated that system 10 (and its teachings) are readily scalable and can accommodate a large number of rooms and sites, as well as more complicated/sophisticated arrangements and configurations. Accordingly, the examples provided herein should not limit the scope or inhibit the broad teachings of system 10 as potentially applied to a myriad of other architectures.
It is also important to note that the steps discussed with reference to
Although the present disclosure has been described in detail with reference to particular embodiments, it should be understood that various other changes, substitutions, and alterations may be made hereto without departing from the spirit and scope of the present disclosure. For example, although the present disclosure has been described as operating in wireless environments, the present disclosure may be used in any digital environment that could benefit from such technology, such as wired environments, infrared environments, WiMAX environments, femto environments, etc. Virtually any device that seeks to map media files in a memory card could enjoy the benefits of the present disclosure. These transformations can be associated with video files, video clips, music (e.g., MP3, MP4, WAV files, iTunes formatting of any kind), iPhone storage applications, iPad storage applications, memory sticks, external hard drives, or any other type of memory, storage, or repository component. Additionally, VMMC 28 could readily be replaced by a USB key to achieve the same objectives outlined herein. Hence, the USB key could be inserted into various devices in order to access the connection to the playlist: over a wireless network. Numerous other changes, substitutions, variations, alterations, and modifications may be ascertained to one skilled in the art and it is intended that the present disclosure encompass all such changes, substitutions, variations, alterations, and modifications as falling within the scope of the appended claims.