Abstract:
A method, system, and program product is disclosed for transferring image data between a sending device and one or more receiving devices. A communication session can be established between the sending device and receiving device(s). The sending device can send a notification of availability of image data on a common transmission channel and at least a portion of the image data can be transferred to the receiving device(s) on one or more data channels. A dedicated data channel can be opened up for each receiving device.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     The present invention relates generally to the field of data transfer, and particularly to systems and methods of transferring image data between a sending device and one or more receiving devices.  
         [0002]     The use of digitally stored images and the sharing of such images among different users is becoming increasingly popular. An image may be uploaded to a server by a user, and then be downloaded by one or more other users for viewing. For example, it is becoming popular to share personal digital photos with others by uploading them to a server for future downloading by other users. Moreover, with the introduction of the so-called third generation of mobile telephone networks, and its third-generation wireless terminals, of which many have an integrated digital camera and a color display, the sharing of images among users and uploading/downloading of images to/from server is expected to increase dramatically.  
         [0003]     Until recently, an image has been regarded as represented by non-real-time data. However, the increasing desire to share images between and among different users, and the introduction of wireless terminals with color displays and integrated digital cameras, is changing this. It is now appreciated that storing, sharing and retrieval of images can be made in a more sophisticated way. Techniques have been developed for the exchange of image-related data within a client/server relationship. This exchange of image data provides mechanisms for locating and retrieving parts of a digitally stored image from a server to a client. The client may then display and store the retrieved part. This also provides the possibility of browsing images (e.g., to successively locate and retrieve different parts of an image). Such browsing is suitable for viewing a large image with a small display of a wireless terminal without compromising the resolution of the image. The image data can then be regarded as being streamed as real-time data to the recipient. Since it is of importance that the browsing can be performed in a smooth and continuous manner. It can at the same time be regarded as an interactive way of viewing an image.  
         [0004]     An example of a protocol designed for the exchange of image-related data within a client/server relationship is JPEG 2000 Internet Protocol (JPIP). JPIP is a protocol designed to provide access and transmission of JPEG 2000 coded data and related metadata in a networked environment. It consists of a structured series of interactions between a client and a server, by means of which image file metadata, structure and partial or whole image codestreams may be exchanged in an efficient manner. JPIP defines the semantics and the values to be exchanged using a variety of existing network transport protocols, including TCP, UDP and HTTP. JPIP is to be used by applications for image browsing, image surface, image or metadata retrieval, and image uploading. For more information on JPIP, reference may be made to part  9  of the JPEG 2000 standard prepared by ISO/IEC and ITU-T, currently available on www.jpeg.org.  
       SUMMARY OF THE INVENTION  
       [0005]     One embodiment of the invention relates to a method of transferring image data. The method includes establishing a communication session between a sending device and one or more receiving devices, opening a common channel for transmission by the sending device of a notification of availability of image data, and opening one or more data channels for transmission of at least a portion of the image data to the receiving devices, each data channel being dedicated to one of the receiving devices. The step of establishing a communication session may include establishing a session using Session Initiation Protocol (SIP). The step of establishing a communication session may also include indicating use of Blocks Extensible Exchange Protocol (BEEP) to exchange image data in JPEG 2000 Interactive Protocol (JPIP). The common channel and the data channels may be BEEP channels. The sending device may include an image data server. In one embodiment, at least one of the sending device and the receiving devices is a wireless device.  
         [0006]     In another embodiment, a system for transferring image data includes a sending device adapted to establishing a communication session with one or more receiving devices, and an image data server adapted to respond to requests for image data from the receiving devices. At least one of the sending device and the image data server is adapted to open one or more data channels for transmission of image data to the receiving devices. Each data channel is dedicated to one of the receiving devices. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0007]      FIG. 1  is a schematic illustration of an arrangement for transferring image data according to an embodiment of the invention;  
         [0008]      FIG. 2  is a schematic illustration of an arrangement for transferring image data according to another embodiment of the invention;  
         [0009]      FIG. 3  is a schematic illustration of a communication session using the Session Initiation Protocol (SIP) for use in the arrangement of  FIG. 1 ; and  
         [0010]      FIG. 4  is a schematic illustration of a Blocks Extensible Exchange Protocol (BEEP) session within the SIP session of  FIG. 3  for use in the arrangement of  FIG. 1 . 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0011]     Embodiments of the present invention allow a sending device to share an image with one or more receiving devices. Each receiving device receives image data according to parameters specified by the receiving device. Thus, a receiving device capable of displaying a low-resolution image may request data corresponding to the low resolution, thereby requiring less data to be transferred than for a high-resolution image.  
         [0012]     Referring to  FIG. 1 , an arrangement according to an embodiment of the invention is illustrated. In this arrangement  100 , a sending device  110 , which may be any device capable of communication with other devices, is provided. For example, the sending device  110  may be wireless device such as a cellular telephone.  
         [0013]     An image data server  120  is provided access to image data to one or more receiving devices, such as receiving devices  130   a,    130   b.  The image data server  120  is provided with a storage capability, such as a database  122 , for storing image data. The image data server  120  may be a standard server, such as an Apache server, or others.  
         [0014]     As with the sending device  110 , the receiving devices  130   a,    130   b  may also be any of a number of devices capable of communicating. For example, the receiving devices  130   a,    130   b  may be wireless devices, such as cellular telephones, or desktop computers.  
         [0015]     Referring again to  FIG. 1 , in practice, a user operating the sending device  110  may wish to share image data with one or more users having receiving devices  130   a,    130   b.  The sending device  110  may be equipped with a digital camera, for example, and the user may wish to share a digital photograph with other users.  
         [0016]     When a user elects to share image data, the sending device  110  establishes a communication session  300  between the sending device  110  and one or more receiving devices  130   a,    130   b.  In a particular embodiment, the communication session is a Transfer Control Protocol (TCP) session using the Session Initiation Protocol (SIP) as an upper layer protocol.  
         [0017]     SIP is an application-layer signalling protocol defined by the Internet Engineering Task Force (IETF). SIP can establish, modify and terminate multimedia sessions or calls with one or more participants. The sessions can include IP-based videoconferences, Internet audio calls, shared whiteboard, gaming sessions, multimedia distribution, etc. The entities involved in a SIP session may be referred to as client user agent and server user agent. Within the context of SIP, use is often made of a protocol known as the Session Description Protocol (SDP). SDP is a text-based format used for describing media parameters and data carried by the SIP. It can also be used for specifying client capabilities. Further details concerning SIP and SDP are sufficiently well known to those skilled in the art and do not require further description.  
         [0018]     One example of a use of SIP in an image data transfer environment is described in international patent application PCT/IB03/06134, which is hereby incorporated by reference in its entirety.  
         [0019]      FIG. 3  is a schematic illustration of an exemplary SIP session  300 , as may be established between the sending device  110  and one or more receiving devices  130   a,    130   b.  To establish the session, the sending device  110  may transmit a request for a session to each receiving device. For purposes of clarity,  FIG. 3  illustrates an SIP session between a sending device and a single receiving device. It will be understood by those skilled in the art, along with the description of a BEEP session below with reference to  FIG. 4 , that a similar session may be established with other receiving devices. SIP supports several request methods, including INVITE (invite into a session), OPTIONS (discover the capabilities of the receiver), BYE (terminate a call), CANCEL (terminate incomplete call requests), ACK (acknowledge a successful response) and REGISTER (register the current location of a user). In the illustrated embodiment of  FIG. 3 , the sending device transmits an INVITE request  310  to each receiver. The INVITE request  310  may include information relating to parameters of the requested session. For example, in a particular embodiment, the INVITE request  310  may specify the use of a BEEP session to transmit JPEG  2000  image data using JPIP. Thus, the receiving device is aware that the session requested requires the receiving device to be enabled for SIP, BEEP and JPIP.  
         [0020]     The JPEG 2000 Interactive Protocol (JPIP) is an application-level protocol, suh as HTTP or IMAP. JPIP standardizes the way clients, wishing to exchange image-related data with the host server, form request to servers as well as the responses generated by the server. JPIP is a standardized protocol that allows efficient data transfer exploiting the features of JPEG 2000.  
         [0021]     A JPEG 2000 image can be decoded in many ways. It may be decoded in full or in part, with varying resolutions, quality levels, regions, components, etc. Considering a typical scenario where high-quality, high-resolution digital images reside in a server, clients may wish to view the images according to certain parameters, such as resolution, size, location, component, layer, and other JPEG 2000 parameters.  
         [0022]     Referring again to  FIG. 3 , in response to the INVITE request  310 , each receiving device sends a response to the sending device. SIP responses can be divided into six categories:  100  (status),  200  (success, such as  200  OK),  300  (redirection),  400  (improper request),  500  (unable to satisfy request) and  600  (global failure). In the illustrated embodiment, the receiving device accepts the INVITE request  310  by transmitting a  200  OK response  320 .  
         [0023]     At this point, the sending device may transmit additional requests. For example, an OPTIONS request may be transmitted to obtain information regarding the capabilities of the receiving device. In the illustrated embodiment of  FIG. 3 , an ACK signal  330  is transmitted to acknowledge the successful response from the receiving device. Thus, the SIP session  300  is successfully established.  
         [0024]     In the illustrated embodiment of  FIGS. 1 and 3 , a Blocks Extensible Exchange Protocol (BEEP) session  400  is executed within the SIP session  300 . The BEEP session  400  will be described in further detail below with reference to  FIGS. 1 and 4 . Once the sending device determines that the SIP session can be terminated, it transmits a BYE request  340  to each receiving device, which responds with a  200  OK response  350 , thereby terminating the SIP session.  
         [0025]     An embodiment of a BEEP session  400  is schematically illustrated in  FIG. 4 . BEEP is a peer-to-peer protocol. Thus, unlike HTTP, BEEP does not operate on a client/server basis. All communication in a BEEP session  400  occurs through one or more channels, such as channels  410 ,  420 ,  430 ,  440   a,    440   b.  Each party requires a single TCP (or SIP) connection, within which channels are multiplexed. Each channel includes one or more profiles which determine the type of communication which can occur through that channel. A typical BEEP session includes a first channel, Channel  0  ( 410 ), for supporting a management profile used to negotiate the setup of further channels.  
         [0026]     The use of BEEP in the image data transfer context will now be described with reference to  FIGS. 1 and 4 . Once the SIP session  300 , and the BEEP session  400  within it, have been established, the sending device  110  sending party  110  reserves a BEEP channel, Channel  1  ( 420 ), for uploading image data to the image data server  120  (line  140 ). For example, the sending device  110  may be a wireless device with an integrated digital camera with images stored therein. The images are transmitted to the image data server  120  for storage in the database  122  for accessing by the receiving devices  130   a,    130   b.  In this regard, BEEP Channel  1  ( 420 ) has a profile adapted to manage the uploading of image data, such as JPEG 2000 data. It is noted that the uploading of the image data may be accomplished outside the BEEP session  400  and outside the SIP session  300  between the sending device  110  and the receiving devices  130   a,    130   b.  In this regard, the image data may be uploaded in a separate communication session prior to the establishment of the SIP session  300 .  
         [0027]     Once the image data has been uploaded to the image data server  120 , the sending device  110  reserves another BEEP channel, Channel  2  ( 430 ), to broadcast common control signalling to where other parties can respond. BEEP Channel  2  ( 430 ) is used by the sending device  110  to notify selected receiving devices  130   a,    130   b  that new JPEG 2000 image data has been made available on the image data server  120  (lines  140 ,  144   a,    144   b ). In this regard, BEEP Channel  2  ( 430 ) is provided with a profile adapted to manage the notification.  
         [0028]     Each receiving device  130   a,    130   b  then reserves a different dedicated channel for streaming image data using JPIP. Thus, receiving device  130   a  reserves BEEP Channel  3  ( 440   a ), and receiving device  130   b  reserves BEEP Channel  4  ( 440   b ). In this regard, both Channels  3  and  4  ( 440   a,    440   b ) are provided with a profile adapted to manage the transfer of image data using JPIP. The receiving devices  130   a,    130   b  use the dedicated BEEP channels  440   a,    440   b  to request the transfer of image data with parameters specified for the requesting receiving device  130   a,    130   b  (lines  146   a,    146   b,  respectively). Thus, each receiving device  130   a,    130   b  can request image data with specific resolution, size, location, component, layer, and other JPEG 2000 parameters.  
         [0029]     In response to the requests (lines  146   a,    146   b ), the image data server  120  transfers image data using JPIP to each receiving device  130   a,    130   b  using its respective dedicated BEEP channel  440   a,    440   b,  corresponding to the specified parameters.  
         [0030]     In other embodiments, the image data server may be integral with the sending device. One such embodiment is illustrated in  FIG. 2 . In this arrangement, a sending device  210  has an image data server  220  integrated therein. A data storage device, such as a database  222  is provided within the sending device  210  for access by the image data server  220 . Receiving devices  230   a,    230   b  are adapted to communicate with the sending device  210  and its integrated image data server  220 . Thus, the sending device  210  may establish an SIP session with a BEEP session therein, as described above. Then, the sending device  210  transmits a notification of new image data to selected receiving devices  230   a,    230   b  through a common channel (BEEP Channel  1 ) having a profile adapted to manage the notification (lines  242   a,    242   b ). The receiving devices  230   a,    230   b  reserve a different dedicated BEEP channel (channel  2  for receiving device  230   a,  and channel  3  for receiving device  230   b ) for transfer of JPEG 2000 image data with specified parameters (lines  244   a,    244   b ). The sending device  210  then transmits the image data using JPIP through the dedicated BEEP channels to each requesting receiving device  230   a,    230   b  (lines  246   a,    246   b ).  
         [0031]     While particular embodiments of the present invention have been disclosed, it is to be understood that various different modifications and combinations are possible and are contemplated within the true spirit and scope of the appended claims. There is no intention, therefore, of limitations to the exact abstract and disclosure herein presented.