Implementations described herein relate generally to media usage and storage at network devices and, more particularly, may relate to the use of dynamic media proxies at network devices for presenting media to users of the devices.
Many devices, such as, for example, cellular radiotelephones, laptops, and personal digital assistants (PDAs), have increasingly been used for storing and viewing media content (e.g., images, audio, video). For example, many cellular radiotelephones now include a camera that permits the user to take high resolution pictures with the camera. The pictures may be stored in the telephone and possibly be sent to friends or family. Many radiotelephone users increasingly use their telephone as their primary camera, making their phone their number one device for re-living and sharing memories. As such a container of precious moments, it may be useful if the phone could store all the photos it has ever taken. However, radiotelephones typically are limited in the amount of available memory that they have for storing photos or other media.
Typically, with devices such as cellular radiotelephones having built in cameras, users regularly have to empty the telephone of pictures by connecting it to their personal computer and transferring the pictures. While some users may be advanced enough to know how to keep the most important photos on their phone even after emptying it to their personal computer, this process is typically very cumbersome and requires that they know which photos they likely want to see in the future. This problem grows as camera megapixel capacity increases, affecting more than just the memory storage demands of the telephone. For example, the processing power needed to decode these locally stored photos increases, and with it the demands on the battery needed to browse a photo album. On the other hand, the viewing experience on the phone remains pretty much the same—it doesn't matter if you have a 1 megapixel or 5 megapixel source photo when viewing it on a QVGA or VGA telephone screen. Users are, thus, lugging around, in their telephones, huge amounts of data that aren't being put to use unless they print their photos or zoom into them on the telephone screen screen.
According to one aspect, a method may include obtaining an item of digital media having a first quantity of data, where the item of digital media may include one of image, video or audio media; storing the item of digital media in a first memory; decreasing the item of digital media to a second quantity of data to produce a first media proxy based on a first amount of time that has elapsed since the item of digital media was stored in the first memory, where the second quantity may be less than the first quantity; and storing the first media proxy in the first memory.
Additionally, decreasing the item of digital media to a second quantity of data to produce a first media proxy may further be based on usage patterns associated with the item of digital media.
Additionally, the usage patterns may include comprise at least one of: a) a number of times the item of digital media has been viewed by a user; b) a number of times the item of digital media has been sent by the user to another user or device; or c) whether the user has associated specific tags with the item of digital media.
Additionally, decreasing the item of digital media to a second quantity of data to produce a first media proxy is further based on at least one of: a) a content of the item of digital media; b) a number of times that the item of digital media has been used as wallpaper at a device; c) to whom the item of digital media has been sent; or d) a number of times that the item of digital media has been used as a screen saver at the device.
Additionally, obtaining the item of digital media may include taking a picture using a digital camera.
Additionally, the digital camera may be a component of a mobile radiotelephone.
Additionally, the method may further include sending the item of digital media having the first quantity of data across a network to a remote server for storage in the remote server.
Additionally, the method may further include storing the item of digital media having the first quantity of data in a second memory associated with the remote server.
Additionally, storing the item of digital media in the first memory may include associating metadata with the item of digital media and storing the metadata in the first memory along with the item of digital media.
Additionally, the metadata may include a link to the item of digital media having the first quantity of data stored at the remote server.
Additionally, the method may further include downloading the item of digital media having the first quantity of data from the remote server using the link.
Additionally, the item of digital media may include an image and decreasing the item of digital media to a second quantity of data may include reducing a resolution of the image to produce the first media proxy.
Additionally, the item of digital media may include video or audio media encoded at a first bit rate and decreasing the item of digital media to a second quantity of data may include encoding the video or audio media at a second bit rate, where the second bit rate is less than the first bit rate.
Additionally, the item of digital media may include video or audio media and decreasing the item of digital media to a second quantity of data may include cropping the video or audio media in time.
Additionally, the video or audio media may be cropped in time to retain the most interesting and/or significant parts of the video or audio media.
Additionally, the method may further include decreasing the item of digital media to a third quantity of data to produce a second media proxy based on a second amount of time that has elapsed since the first media proxy was stored in the memory, where the third quantity of data is less than the second quantity; and storing the second media proxy in the first memory.
According to a further aspect, a device may include means for obtaining an item of digital media having a first quantity of data, where the item of digital media may include one of image, video or audio media; means for decreasing the item of digital media to a second quantity of data to produce a first media proxy based on an amount of time that has elapsed since the item of digital media was obtained, where the second quantity may be less then the first quantity; means for sending the item of digital media having the first quantity of data to a remote server that may be located across a network from the device for storage; and means for storing the first media proxy in a local memory at the device.
According to an additional aspect, a device may include a camera to generate a digital image having a first resolution and a processing unit to decrease a resolution of the digital image to a second resolution, to produce a first image proxy, based on a first amount of time that has elapsed since the digital image was generated by the camera, where the second resolution may be less than the first resolution. The device may further include a memory to store the first media proxy; and a transceiver to transmit the digital image having the first resolution to a media server via a wireless link prior to producing the first image proxy.
Additionally, the device may include a cellular radiotelephone.
Additionally, the first resolution may include approximately 5 megapixels.
Additionally, the second resolution may include approximately 0.5 megapixels.
Additionally, the processing unit may be further configured to decrease a resolution of the digital image to a third resolution, to produce a third image proxy, based on a second amount of time that has elapsed since the digital image was generated by the camera, where the third resolution may be less than the second resolution.
Additionally, the third resolution may include approximately 0.1 megapixels.
According to another aspect, a computer-readable medium containing instructions executable by at least one processor may include one or more instructions for obtaining, at a wireless device, items of digital media each having a first quantity of data, where the items of digital media comprise one of image, video or audio media. The computer-readable medium may further include one or more instructions for initiating sending of the items of digital media each having the first quantity of data across a network, via a wireless link, to a remote server for storage; one or more instructions for decreasing the items of digital media to each having a second quantity of data to produce media proxies, where the second quantity is less than the first quantity; and one or more instructions for storing the media proxies in a local memory at the wireless device along with links to the items of digital media stored at the remote server.
According to yet another aspect, a method may include obtaining, at a mobile wireless device, items of digital media, where the items of digital media comprise one or more of image, video or audio media; storing first ones of the items of digital media in a local memory at the wireless device to fill the local memory; sending second ones of the items of digital media, when the local memory is sufficiently full, across a network to a remote server for storage; and storing links associated with the second ones of the items of digital media in the local memory at the mobile wireless device.
The term “comprises/comprising” when used in this specification is taken to specify the presence of stated features, integers, steps, components or groups but does not preclude the presence or addition of one or more other features, integers, steps, components or groups thereof.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more embodiments of the invention and, together with the description, explain the invention. In the drawings,
The following detailed description of the invention refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. Also, the following detailed description does not limit the invention.
Exemplary embodiments may generate proxies of items of media (e.g., images, audio or video media) based on time and usage patterns associated with those items of media. The media proxies may represent down scaled versions of the original items of media that may require the use of less memory when storing the proxies at a device, such as, for example, a cellular radiotelephone. The media proxies may be locally stored at the device, and the original version of the item of media may be sent to a media server across a network for storage and future retrieval. The proxies may be progressively downscaled over time based on a number of factors (further described below). Thus, an original image that initially includes approximately 2+ megapixels may be downscaled after a period of time to a proxy image having approximately 0.5 megapixels. The 0.5 megapixel proxy image may subsequently, after an additional period of time, be down scaled to a proxy image having approximately 0.01 megapixels. Down scaling of media at a device, such as a cellular radiotelephone, frees up memory for storing additional items of media. Down scaling media additionally may increase device performance by prolonging battery life (i.e., by decreasing memory accesses) and possibly increasing the speed at which media is decoded (i.e., down scaled images may be decoded quicker than original high resolution versions of the images).
Over time, as shown in
Downscaling images at the device decreases the memory storage requirements of images stored at the wireless device, thus, freeing up memory for future images. The original high resolution images of images that have been downscaled may be sent to an external server for storage and future retrieval, as further described below.
Devices 210-1 through 210-N may include cellular radiotelephones, personal digital assistants (PDAs), Personal Communications Systems (PCS) terminals, laptop computers, palmtop computers, or any other type of appliance that includes a communication transceiver that permits the device to communicate with other devices and/or servers via sub-networks 230. Media server 220 may store media (e.g., image media, audio media or video media) received from devices 210-1 through 210-N.
Sub-network(s) 225 may include one or more networks of any type, including a local area network (LAN); a wide area network (WAN); a metropolitan area network (MAN); a telephone network, such as the Public Switched Telephone Network (PSTN) or a Public Land Mobile Network (PLMN); an intranet, the Internet; or a combination of networks. The PLMN(s) may further include a packet-switched sub-network, such as, for example, General Packet Radio Service (GPRS), Cellular Digital Packet Data (CDPD), or Mobile IP sub-network. The PLMN(s) may use a high-speed downlink packet access (HSDPA) protocol that permits higher mobile network data transfer speeds.
Transceiver 305 may include transceiver circuitry for transmitting and/or receiving symbol sequences using radio frequency signals via antenna 310. Transceiver 305 may include, for example, a RAKE receiver. Transceiver 305 may further include mechanisms for estimating the signal-to-interference ratio (SIR) of received symbol sequences. Transceiver 305 may additionally include mechanisms for estimating the propagation channel Doppler frequency.
Equalizer 315 may store and implement Viterbi trellises for estimating received symbol sequences using, for example, a maximum likelihood sequence estimation technique. Equalizer 315 may additionally include mechanisms for performing channel estimation. Encoder/decoder 320 may include circuitry for decoding and/or encoding received or transmitted symbol sequences.
Memory 325 provides permanent, semi-permanent, or temporary working storage of data and instructions for use by processing unit 330 in performing processing functions, and for storing data, such as, for example, media data (e.g., images, audio media, or video media). Memory 325 may include read only memory (ROM), random access memory (RAM), large-capacity storage devices, such as a magnetic and/or optical recording medium and its corresponding drive, or other types of memory devices.
Processor 330 may include a processor, microprocessor, or processing logic that may interpret and execute instructions. Processing unit 330 may perform all data processing functions for inputting, outputting, and processing of data including data buffering and control functions, such as call processing control, user interface control, or the like. Processing unit 330 may additionally perform media down scaling to produce media proxies (as described further below).
Display unit 335 may include a screen display that may display images and/or video, and may also provide a graphical user interface that can be used by a user for selecting device 210 functions. The screen display of display unit 335 may include any type of visual display, such as, for example, an LCD display, a plasma screen display, an LED display, a CRT display, an OLED display, etc.
Input device(s) 340 may include mechanisms for entry of data into device 210. For example, input device(s) 340 may include a key pad (not shown) and a microphone (not shown). The microphone can include mechanisms for converting auditory input into electrical signals. Camera/video unit 345 may include camera and/or video devices for obtaining and storing images and/or video. Output device(s) 350 may include mechanisms for outputting data in audio and/or hard copy format. For example, output device(s) 350 may include a speaker (not shown) that includes mechanisms for converting electrical signals into auditory output. Bus 355 interconnects the various components of device 210 to permit the components to communicate with one another.
The configuration of components of device 210 illustrated in
Device 210, consistent with exemplary implementations, may perform certain processes, as described below. Device 210 may perform these processes in response to processing unit 330 executing software instructions contained in a computer-readable medium, such as memory 325. A computer-readable medium may include a physical or logical memory device.
The software instructions may be read into memory 325 from another computer-readable medium, or from another device via communication interface transceiver 305. The software instructions contained in memory 325 may cause processing unit 330 to perform processes that will be described later. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes consistent with exemplary implementations. Thus, implementations are not limited to any specific combination of hardware circuitry and software.
Processor 520 may include a processor, microprocessor, or processing logic that may interpret and execute instructions. Main memory 530 may include a random access memory (RAM) or another type of dynamic storage device that may store information and instructions for execution by processor 520. ROM 540 may include a ROM device or another type of static storage device that may store static information and instructions for use by processor 520. Storage device 550 may include a magnetic and/or optical recording medium and its corresponding drive.
Input device 560 may include a mechanism that permits an operator to input information to media server 220, such as a keyboard, a mouse, a pen, a touch screen, voice recognition and/or biometric mechanisms, etc. Output device 570 may include a mechanism that outputs information to the operator, including a display, a printer, a speaker, etc. Communication interface 580 may include any transceiver-like mechanism that enables media server 220 to communicate with other devices and/or systems. For example, communication interface 580 may include mechanisms for communicating with another device or system via a network, such as sub-network 230.
Media server 220, consistent with exemplary implementations, may perform certain processes, as described below. Media server 220 may perform these processes in response to processor 520 executing software instructions contained in a computer-readable medium, such as memory 530. A computer-readable medium may include a physical or logical memory device.
The software instructions may be read into memory 530 from another computer-readable medium, such as data storage device 550, or from another device via communication interface 580. The software instructions contained in memory 530 may cause processor 520 to perform processes that will be described later. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes consistent with exemplary implementations. Thus, implementations are not limited to any specific combination of hardware circuitry and software.
The exemplary process may begin with obtaining an original image (block 605). In one implementation, camera 425 of device 210 may generate an image (e.g., a digital photo). In another implementation, the original image may be received at device 210 via sub-network 230 (e.g., sent from another device, client, or server). For example, a user of device 210 may download the original image while browsing a website. The original image may include a high resolution image (e.g., 2+ mega pixels).
The original image may be locally stored in device 210's memory storage (block 610). For example, the original image may be stored in memory 325 of device 210. Processing unit 330 may determine whether to scale down the image to a lower resolution based on a number of factors (block 615). In one embodiment, a factor in determining whether to scale down the image to a lower resolution may be the amount of time that has elapsed since the image was obtained in device 210 (e.g., image retrieved from a website, or picture taken by camera 425) and stored in local memory. Thus, older images may be more likely to be down scaled to a lower resolution than newer images. Other factors that may be used to determine whether a given image should be down scaled may include one or more of the following:
If the image is not to be scaled down (block 620-NO), then the exemplary process may return to block 615 after, for example, the elapse of a span of time. For example, the exemplary process may return to block 615 at certain points in time (e.g., device 210 has been inactive for a specified period of time, or at periodic intervals (e.g., once a day)). As an example, the exemplary process may return to block 615 when device 210 is connected to a power source and device 210's battery is fully charged.
If the image is to be scaled down (block 620-YES), then a determination may be made whether a current proxy of the original image is at a lowest resolution (block 625). A lowest resolution for an image may be device dependent may be approximately 0.1 to 0.01 megapixels. If a current proxy of the original image is at its lowest resolution (block 625-YES), then the exemplary process may end. If no proxy of the original image has yet been generated, or the current proxy of the original image is not at the lowest resolution (block 625-NO), then the original image or current proxy image may be processed to down scale it and decrease its resolution (block 630).
The original image may be sent to media server 220, and the original image may then be deleted from device 210's local memory storage (block 640). As shown in
The down scaled image proxy may be stored in device 210's memory storage along with associated metadata (block 635). As shown in
The exemplary process of
The exemplary process may begin with a request to access an original high resolution image at device 210 (block 1005). A user of device 210 may, for example, select an image, using keypad 415 and display 420, to request access to the original high resolution image. In one implementation, the addition of an upgraded memory stick at device 210 may result in requests to access a high resolution image(s) previously stored at media server 220 so that that image(s) may now be stored in the increased memory available locally at device 210.
A determination may be made whether the image was previously scaled down (block 1010). If not (block 1010-NO), then the locally stored original high resolution version of the image may be retrieved from memory (block 1015). For example, if the image was not previously scaled down, then the image may be retrieved from memory 325 of device 210. If the image was previously down scaled (block 1010-YES), then the metadata associated with the locally stored proxy of the image may be retrieved (block 1020). For example, as shown in
A link may be retrieved from the metadata (block 1025). As further shown in
The foregoing description of implementations provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings, or may be acquired from practice of the invention. For example, while series of blocks have been described with regard to
Aspects of the invention may also be implemented in methods and/or computer program products. Accordingly, the invention may be embodied in hardware and/or in software (including firmware, resident software, microcode, etc.). Furthermore, the invention may take the form of a computer program product on a computer-usable or computer-readable storage medium having computer-usable or computer-readable program code embodied in the medium for use by or in connection with an instruction execution system. The actual software code or specialized control hardware used to implement aspects consistent with principles of the invention is not limiting of the invention. Thus, the operation and behavior of the aspects were described without reference to the specific software code—it being understood that one of ordinary skill in the art would be able to design software and control hardware to implement the aspects based on the description herein.
Furthermore, certain portions of the invention may be implemented as “logic” that performs one or more functions. This logic may include hardware, such as an application specific integrated circuit or field programmable gate array, software, or a combination of hardware and software.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the invention. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification.
No element, act, or instruction used in the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.