System and method for efficient image and document upload

There is disclosed a system and method for uploading a document from the device to a server. In an embodiment, the method comprises: (i) generating and storing a scaled down version of the document on the device; (ii) determining the type of connection the device has established with the server; (iii) if the device has established a specified type of high bandwidth connection to the server, then: uploading the document from the device to the server; deleting the document from the device; and creating an upload record of data associated with the scaled down version of the document on the device to subsequently access the uploaded document; (iv) else, if the device has not established a specified type of high bandwidth connection to the server, then uploading the scaled down version of the document.

The present disclosure relates generally to systems and methods for uploading image files and other types of large documents from a mobile communication device.

BACKGROUND

With continuous improvement in equipment and features, mobile communication devices are now being used for more multi-media applications, including imaging, video, and audio. Often, it is desirable to be able to share photos and other types of documents with others, requiring that the files be uploaded from the mobile communication device. With limited bandwidth or other resource limitations, what is needed is an improved system and method for uploading photos and other types of large documents.

DETAILED DESCRIPTION

As noted above, the present disclosure relates generally to a system and method for uploading photos and documents from a wireless handheld device.

In an illustrative embodiment, the invention may be practiced with a handheld mobile communication device in a wireless operating environment. Shown inFIG. 1is a schematic block diagram of an illustrative handheld mobile communication device100. The communication device100may comprise a number of components, including a main processor102which controls the overall operation of communication device100. The main processor102may also interact with additional subsystems such as a random access memory (RAM)106, a flash memory108, a display110, an auxiliary input/output (I/O) subsystem112, a data port114, a keyboard116, a navigator117, a speaker118, a microphone120, short-range communications122, a GPS subsystem124, a camera module126, and associated camera logic128.

Communication functions, including data and voice communications, may be performed through communication subsystem104. The communication subsystem104may be adapted for cellular wireless communications and receive data from and send messages to a wireless network200in accordance with various network protocols. Such protocols may include, but are not limited to, one or more of the Global System for Mobile communication (GSM), Enhanced Data GSM Environment (EDGE), General Packet Radio Services (GPRS), Universal Mobile Telecommunications Service (UMTS), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Integrated Digital Enhanced Network (iDEN), Mobitex, and DataTAC protocols.

In addition to cellular wireless communication functions performed via communication subsystem104, communication device100may also perform short-range communications through short-range communication module122. For example, communication device100may access network200via a wireless router199providing an IEEE 802.11 (e.g. 802.11b/g/n) Wi-Fi hot spot within a local area and connected to network200. Short-range communication module122may also support other types of connections such as Bluetooth for communication within a more limited area such as a room, or active near-field communications (“NFC”) performed over even shorter distances of a few inches or centimeters. An illustrative NFC is standardized in ECMA-340 and ISO/IEC 18092, for example.

In an embodiment, data port114may provide communication device with a wired connection for communication, for example, with a personal computer (not shown). As an illustrative example, data port114may be a universal serial bus (“USB”) type connector (as specified by the USB Implementers Forum, Inc.), allowing communication device100to be connected via a USB cable to a USB input port on a personal computer. As another illustrative example, data port114may support IEEE 1394 (also known as FireWire, i.Link, Lynx) high-speed serial bus communications.

Other subsystems of communication device100perform “resident” or on-device functions. By way of example, the display110and the keyboard116may be used for both communication-related functions, such as entering a text message for transmission over the network200, and device-resident functions such as a calculator or task list. The navigator117(e.g. a joystick, trackball or an optical tracker) may be used for various navigation functions, such as navigating through a graphical user interface (GUI) menu displayed on display110. The navigator117may also be configured with a secondary actuation feature, such as allowing a user to depress the navigator, to allow selection of a highlighted item. Display110may also be a touch screen, allowing selection of displayed objects or menu items by touch.

Still referring toFIG. 1, operating system software used by the main processor102is typically stored in a persistent store such as flash memory108. A suitable file system may store the operating system software as well as device application files and data in hierarchical files and folders. Those skilled in the art will appreciate that the operating system, specific device applications, or parts thereof, may also be temporarily loaded into a volatile store, such as the RAM106, for processing by main processor102.

The communication device100may send and receive communication signals over the wireless network200after required network registration or activation procedures have been completed, and network access may be associated with a subscriber or user of the communication device100.

To identify a user, the communications device100may use a SIM/RUIM/USIM card125(i.e. Subscriber Identity Module or a Removable User Identity Module or a Universal Subscriber Identity Module, etc.), which is inserted into a SIM/RUIM/USIM interface129, to communicate with a network. The SIM/RUIM/USIM card125is one type of a conventional “smart card” that can be used to identify a user of the communications device100and to personalize the communications device100, among other things.

The communication device100may be a battery-powered device and may include a battery interface132for receiving one or more rechargeable batteries130. In some embodiments, the battery130may be a smart battery with an embedded microprocessor. The battery interface132is coupled to a regulator (not shown), which assists the battery130in providing power V+ to the communication device100. The battery130may be used to power all components and modules in the communication device100.

The main processor102, in addition to its operating system functions, enables execution of various software applications134on the communication device100. A subset of software applications134that control basic device operations, including data and voice communication applications, will normally be installed on the communication device100during its manufacture.

The software applications134may include a messaging application136. The messaging application136can be any suitable software program that allows a subscriber or user of the communication device100to send and receive wireless text communications. Messages that have been sent or received by the user are typically stored in local storage such as flash memory108of the communication device100, or in some other suitable storage element in the communication device100. In an alternative embodiment, some of the sent and received messages may be stored remotely from the communication device100such as in a data store of an associated host system that the communication device100communicates with.

The communication device100may also include an Internet browser module138, for wirelessly accessing the Internet from the device100. The communication device100may further include a device state module140, an address book142, a personal information manager (PIM)144, and various other modules150. Additional software applications may also be loaded onto the communication device100through at least one of the wireless network200, the auxiliary I/O subsystem112, the data port114, the short-range communications subsystem122, or other device subsystem124.

The communication device100may further include an upload module148for uploading various photos and documents in accordance with an embodiment. Upload module148will be described in more detail further below.

Now referring toFIG. 2, shown is an illustrative front view of a handheld mobile communication device100that may provide a suitable operating environment. As shown, the communication device100may include a display110, a keyboard116, and other input or navigation means such as a navigator117. The display110may be configured to display various screens allowing the user of device100to view screen outputs from the various software applications134, including the presentation module149. In an embodiment, display110may be configured to provide a touch-sensitive screen input in response to a prompt or query displayed on display110.

Now referring toFIG. 3, shown is a schematic block diagram of an illustrative network300which may provide a suitable operating environment. As shown, wireless communication device100may be wirelessly connected into network306via wireless carrier308. Network306may also connect a device server302that may host various functions for communication device100, and data server304that may store various types of data that may be downloaded to communication device100or uploaded from wireless communication device100. For example, data server304may store images, messages, and other types of documents. As shown, data server304may include a suitably configured upload/download module305for facilitating the data upload from communication device100, or data download to communication device100.

In an embodiment, data server304may be a shared Internet data server storing data uploaded by various wireless communication devices. For example, data server304may be an Internet blog to which photos, messages, text and documents may be uploaded. Data server304and upload/download module305will be described in more detail further below.

Now referring toFIG. 4, shown is a schematic block diagram of an illustrative wireless communications device100that may have access to various types of wireless communications. In an illustrative example, wireless communications device100may be configured to be capable of communicating with one or more wireless networks such as cellular wireless mobile networks401,402or403. Wireless communications device100may also be configured to be capable of communicating with 802.11 Wi-Fi router406and other short-range or near-field communications via short-range communications module408. As well, wireless communications device100may be configured to be connected via wire to a USB connection410or to an IEEE 3194 connection411, for example.

While device100may be configured to be capable of accessing various types of wireless communications and wired connections as described above, actual ability to access any of these types of wireless communications will depend on availability of the wireless communication networks, and whether communication device100is currently within operating range for communications. Various other factors will come into play, such as whether the communication device100is currently located in an underground parking lot, such that the signal from a cellular wireless mobile network is lost. Alternatively, communication device100may be temporarily located outside of a coverage area, such that access to a high-speed wireless digital mobile network (e.g. EDGE, 3G, 4G) is not available.

Given the possibility that a wireless network may be available to communication device100, but that the highest speed network that the communication device100is configured to access may not be currently available at a particular time or particular location, it is desirable to be able to manage uploads from and downloads to communication device100such that available wireless network resources are utilized effectively.

As an illustrative example, suppose that communication device100provides users with the opportunity to post documents and photos to an Internet blog or server (e.g. to data server304ofFIG. 3, above). With current models of communication devices100offering cameras with higher resolution sensors (e.g. 2.0 MP, 3.2 MP or even higher), a potential problem is that some image files can be very large. Even with relatively high-speed networks available, uploading such documents from the communication device can be resource intensive.

Nevertheless, as a part of the attraction of some Internet blogs is to see posted images, text and other documents shortly after an event, a user might like to post images as soon as they are taken on the communication device100. Uploading a full size image could take a long time, consume a lot of bandwidth, and may be expensive if the communication device100is on a capped or metered data usage plan, is currently not in a suitable wireless coverage area, or is currently roaming in a foreign jurisdiction with applicable high roaming fees and rates.

As a potential solution, whenever communication device100is not in an appropriate wireless coverage area, or otherwise wired to a personal computer using suitable cables, upload module148may be configured to utilize a rules set to upload a generated scaled down version of the image file with lower quality settings for posting to the Internet blog or data server304. For example, a thumbnail sized version of the image which is a fraction of the size of the original can be automatically generated on communication device100when the image is taken (e.g. using camera module126and camera logic128), and this lower quality version of the image can be uploaded to data server304in much less time, and with much less data than the full version. However, while a thumbnail size image may be appropriate for short term posting, it may be desirable to post the full size image on the blog for viewing on a long term basis.

In order to address this problem, what is proposed is to track the uploading of the thumbnail image to the blog or data server304, and to store this information on the communication device100such that the thumbnail image initially uploaded to the data server304may be replaced by a larger sized image or the original sized image stored on the communication device100as soon as the communication device100has access to a less expensive communication means, such as for example a wired USB or IEEE 3194 connection, or a wireless Bluetooth or 802.11 Wi-Fi router connection. Alternatively, access to a high-speed 3G or 4G cellular wireless network within the communication device100's home jurisdiction may also be a suitable communication means if the communication device100is on a high-capacity or unlimited data plan.

This proposed solution allows the communication device100to upload a thumbnail version of an image almost immediately, and to upload a larger version or the original version of the image as soon as the communication device100can upload the larger version or original version cost effectively. In order to do this, however, the communication device100must retain information about the uploaded thumbnail image and its destination. As an illustrative example, as shown inFIG. 5, the thumbnail upload information could be retained on communication device100in an upload file record500. In an embodiment, this upload file record may include a thumbnail version of the image502, the folder504in which the original image is stored on communication device100(e.g. a folder in flash memory108), the name of the image506, the name of the thumbnail version of the image508, and a unique Internet URL associated with the uploaded thumbnail image file (e.g. on data server304).

In an embodiment, upload module148may be configured to save the information including the name of the image506, the name of the thumbnail version of the image508, and the Internet URL information in an upload file record500for each uploaded image, and to store this upload file record500for later use. For example, the upload file record500may be used to subsequently recall and download a higher resolution version or the original version of the image at any time. Also, the information stored in upload file record500may be forwarded to another user so that the thumbnail version, larger version or original version can be accessed and downloaded by the other user at any time after upload.

Now referring toFIG. 6, shown is an illustrative example of a rules set for uploading an image. As shown, the rules may comprise uploading a full size image if the device is connected to the server via any one of a USB cable, IEEE 1394 cable, 802.11 Wi-Fi, or Bluetooth connection. In an embodiment, high-speed 3G and 4G data network connections in a home jurisdiction for communication device100may also be appropriate. However, as “cost effective” may be dependent upon how much value a user places on uploading a particular image to a blog, a user may wish to change the rules such that the full size image is uploaded under fewer conditions, or perhaps uploaded under more conditions. Based on this rules set, a thumbnail image uploaded to a data server may be automatically updated when the wireless communication device100comes within range of one of the specified types of connections enabling upload of a larger size or original size image.

Now referring toFIG. 7, shown is an illustrative method700in accordance with an embodiment. As shown, method700may begin at block702, where method700generates and stores a scaled down version of the document on the device. The scaled down version of the document may be a thumbnail image or a somewhat larger image appropriate for the size of the display110(FIGS. 1 and 2) which permits browsing on the wireless communication device100.

Method700then proceeds to block704, where method700generates and stores a scaled down version of the document on the device. Method700then proceeds to block204, where method700determines the type of connection the device has established with the server.

Method700then proceeds to decision block706, where method700determines if the devices has established the specified type of high speed connection to the device. If yes, method700proceeds to block710.

At block710, method700uploads the document from the device to the server. Method700then proceeds to block712, where method700deletes the document from the device. Method700then proceeds to block714, where method700creates an upload record of data associated with the scaled down version of the document on the device, thereby to subsequently access the uploaded document from the device.

Referring back to decision block706, if no, method700proceeds to block708, where method700uploads the scaled down version of the document, and waits or loops at decision block706until the device has established a specified type of connection to perform the steps at blocks a710,712and714.

From block714, method700proceeds to block716, where method700, where method700subsequently uses the upload record of data to access and retrieve the uploaded document from the server to the device. This may be useful, for example, when the user wants to view a close up of a part of the document, in which case retrieving the uploaded document from the server to the device will provide the additional details necessary for viewing the close up.

The upload record of data may also be transmitted to other users, so that those other users can access the uploaded document from their respective devices. As the other users never had the original document on their devices, they may now also view the high quality original document.

Now referring toFIG. 7B, in an embodiment, as shown, block714of method700may include a number of sub-steps, including step714A where method700includes in the upload record data the name and location of the document, and the name and location of the scaled down version of the document on the server.

Block714of method700may further include block714B, where method700provides a rules set specifying the types of connections to the server that are acceptable. The types of connections may include, for example, one or more of a USB connection, an IEEE 1394 connection, an 802.11 Wi-Fi connection, a Bluetooth connection, and a high-speed 3G/4G data network connection in a home jurisdiction for the device.

Thus, in an aspect, there is provided a method operable on a mobile communications device for uploading a document from the device to a server, comprising: (i) generating and storing a scaled down version of the document on the device; (ii) determining the type of connection the device has established with the server; (iii) if the device has established a specified type of high bandwidth connection to the server, then uploading the document from the device to the server, deleting the document from the device, and creating an upload record of data associated with the scaled down version of the document on the device, thereby to subsequently access the uploaded document; (iv) else, if the device has not established a specified type of connection to the server, then uploading the scaled down version of the document and waiting until a specified type of connection is established.

In an embodiment, the method further comprises performing step (iii) as soon as the device has established a specified type of connection to the server.

In another embodiment, the method further comprises subsequently using the upload record of data to retrieve the uploaded document from the server to the device.

In another embodiment, the document is an image file, and generating a scaled down version of the document comprises generating a thumbnail version of the image file.

In another embodiment, the upload record data includes the name and location of the scaled down version of the document on the device, and the name and location of the document on the server.

In another embodiment, the method further comprises providing a rules set specifying the types of connections to the server.

In another embodiment, the types of connections includes one or more of a USB connection, an IEEE 1394 connection, an 802.11 Wi-Fi connection, a Bluetooth connection, and a high-speed 3G/4G data network connection in a home jurisdiction for the device.

In another aspect, there is provided a system on a mobile communications device for uploading a document from the device to a server, wherein the system is adapted to: generate and store a scaled down version of the document on the device; determine the type of connection the device has established with the server; if the device has established a specified type of high bandwidth connection to the server, then upload the document from the device to the server, delete the document from the device, and create an upload record of data associated with the scaled down version of the document on the device to subsequently access the uploaded document; else, if the device has not established a specified type of connection to the server, then upload the scaled down version of the document and wait until a specified type of connection is established.

In an embodiment, the system is further adapted to upload the document from the device to the server, delete the document from the device, and create the upload record of data associated with the scaled down version of the document on the device as soon as the device has established a specified type of connection to the server.

In another embodiment, the system is further adapted to subsequently use the upload record of data to retrieve the uploaded document from the server to the device.

In another embodiment, the document is an image file, and the system is further adapted to generate a scaled down version of the document comprises generating a thumbnail version of the image file.

In another embodiment, the upload record data includes the name and location of the scaled down version of the document on the device, and the name and location of the document on the server.

In another embodiment, the system is further adapted to provide a rules set specifying the types of connections to the server.

In another embodiment, the types of connections includes one or more of a USB connection, an IEEE 1394 connection, an 802.11 Wi-Fi connection, a Bluetooth connection, and a high-speed 3G/4G data network connection in a home jurisdiction for the device.

In another aspect, there is provided a data processor readable medium storing data processor code that when loaded into a mobile communications device adapts the device for uploading a document from the device to a server, the data processor medium comprising: code for generating and storing a scaled down version of the document on the device; code for determining the type of connection the device has established with the server; code for if the device has established a specified type of high bandwidth connection to the server, then uploading the document from the device to the server; deleting the document from the device; and creating an upload record of data associated with the scaled down version of the document on the device to subsequently access the uploaded document; else, code for if the device has not established a specified type of connection to the server, then uploading the scaled down version of the document and waiting until a specified type of connection is established.

In an embodiment, the data processor readable medium further comprises code for uploading the document from the device to the server, deleting the document from the device, and creating an upload record of data associated with the scaled down version of the document on the device as soon as the device has established a specified type of connection to the server.

In another embodiment, the data processor readable medium further comprises code for subsequently using the upload record of data to retrieve the uploaded document from the server to the device.

In another embodiment, the document is an image file, and generating a scaled down version of the document comprises generating a thumbnail version of the image file.

In another embodiment, the upload record data includes the name and location of the scaled down version of the document on the device, and the name and location of the document on the server.

In another embodiment, the data processor readable medium further comprises code for providing a rules set specifying the types of connections to the server.

In another embodiment, the types of connections includes one or more of a USB connection, an IEEE 1394 connection, an 802.11 Wi-Fi connection, a Bluetooth connection, and a high-speed 3G/4G data network connection in a home jurisdiction for the device.

While illustrative embodiments have been described above, it will be appreciated that various changes and modifications may be made. More generally, the scope of the invention is defined by the following claims.