Abstract:
Methods and systems that allow the viewing of arbitrary documents on a client display by up-loading all necessary image processing steps to the server, thereby eliminating any software downloads to, or installation on, the client device.

Description:
BACKGROUND OF THE INVENTION 
   1. Field of Invention 
   This invention relates to server based image processing as a function of the image viewing client device. 
   2. Description of Related Art 
   A user typically likes to view a document on a handheld wireless client device before deciding to print, facsimile or e-mail the document. More and more client devices (“clients”) allow the display of small images on the client display. Well known example clients are cell phones having color display capability, but also other small form factor display clients are available, such as, for example personal digital assistants (PDAs), e.g., BLACKBERRY RIM™, copier user interfaces, and the like. Common display approaches for these client devices is the use of client software to enable viewing of images, such as, for example, JPEG2000 decoder. A handheld wireless device, such as, for example, a PDA, a cell phone or a miniaturized computing device, has relatively little screen surface area for viewing documents, as well as little memory for storing the document or the applications for all the document formats a user can conceivably access and view. 
   Current solutions either restrict the document types that can be viewed on handheld client devices, e.g., web pages with graphics interchange format (GIF) files, show only the ASCII text of the document, provide viewers for a small set of document types, or do not provide viewers at all. Increasing the number of viewable documents by adding client side viewers quickly runs into resource problems. In addition, transmitting large application files makes the system impractical considering transfer times and costs. 
   In client-server situations, a large amount of the actual processing work is generally decentralized from the server and provided to the client in order to reduce server load. For mobile or other small clients, this approach includes several disadvantages. One disadvantage is that the computational capacity on the client side is rather small. Another disadvantage is that, given the vast number of client types in use, performing software updates, software downloads and the like are difficult or impractical. 
   These disadvantages can be understood considering a simple example. When viewing documents, such as issued patents, Adobe® PDF is a common format, yet, client side viewers have to be installed in order to be able to view the documents. Additionally, a PDF is transmitted in its entirety to the client in order to view the document, often exceeding 1 MB for many patent documents. If no client software is installed, the documents can not be viewed. However, installing viewers for all potential application will, in general, exceed the client capability and transferring entire application files when only pieces need to be viewed will in general exceed reasonable transfer times and costs. 
   SUMMARY OF THE INVENTION 
   This invention provides systems and methods that allow the viewing of arbitrary documents on a client display by up-loading all necessary image processing steps to the server, thereby eliminating any software downloads to, or installation on, the client device. One advantage of the exemplary systems and methods of this invention is the relative ease of upgrading the software, since only server upgrades are needed, and the ability to offer new capabilities to existing clients. Another advantage is that web browsers are in one form or another natively residing on common clients. These browsers, or browser-like applications support a limited set of data, like GIF or JPG data. This invention provides systems and methods that provide for a large selection of applications and application files to be viewable using server side processing connected to client side image browsing. In the following discussion, the term browser will be used to indicate any client side image viewing software used in the context of this invention. 
   In various exemplary embodiments, the systems and methods according to this invention provide for arbitrary documents to be viewed on a client device display by using a server based image processing approach that first converts the document to a standard image format that is supported by the client, and then transmitting the processed document information, or parts thereof, under client request, to the client device. 
   This invention further provides systems and methods that convert, through server software, dissimilar document types into a document type that is supported by the client based browser, thus enabling use of the browser as the main navigation tool through the server processed document. 
   This invention further provides methods and systems that provide server based document processing that is a function of at least one or more of a client device parameter, data transmission capability, document type and/or format, and user input. 
   This invention also provides methods and systems that enable mobile client devices to browse, retrieve, view and print image views of documents in the server based processing environment. 
   In various exemplary embodiments, this invention provides methods and systems that actively or dynamically perform server based processing of a document in the server as a function of knowledge obtained from the current user&#39;s session to optimally render the document. 
   In various exemplary embodiments, this invention provides methods and systems that dynamically control and/or direct server based document image processing based on knowledge regarding client device hardware and/or software capabilities, browser image formats supported by the client device, network bandwidth, document file format, document content, user hints and the like. 
   These and other features and advantages of this invention are described in, or are apparent from, the following detailed description of various exemplary embodiments of the systems and methods according to this invention. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Various exemplary embodiments of the systems and methods of this invention will be described in detail, with reference to the following figures, wherein: 
       FIG. 1  illustrates an exemplary embodiment of a system topology that the systems and methods of this invention are usable with; 
       FIG. 2  is a flowchart outlining one exemplary embodiment of a method of server based processing of a document according to this invention; 
       FIG. 3  is a flowchart outlining in greater detail one exemplary embodiment of various client dependent processing operations performed by the server according to the method of  FIG. 2 ; and 
       FIG. 4  is a functional block diagram of an exemplary embodiment of a server-based image processing system according to this invention. 
   

   DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
   Various exemplary embodiments of systems and methods according to this invention provide for arbitrary documents to be viewed on a client device display by using a server based image processing approach that first converts the document to a standard image format that is supported by the client, and then transmitting the processed document information, or parts thereof, under client request, to the client device. 
   In various exemplary embodiments, the systems and methods of this invention provide for all document types requested by a client device to be converted through server software into a type that is supported by the client based browser, thus enabling the browser to be used as the main navigation tool through the processed document. 
     FIG. 1  shows one exemplary embodiment of a system topology  100  associated with the server based image processing according to this invention. As shown in  FIG. 1 , the system  100  includes one or more servers  110  connected to one or more clients  120  via one or more networks  130 . 
   The server  110  processes image data of a document based on knowledge regarding client device hardware and/or software capabilities, browser image formats supported by the client device, network bandwidth, document file format, document content, user hints and the like. The server  110  then compresses the processed data, and transmits the compressed data to the client  120  by way of the network  130 . 
   In various exemplary embodiments, the server  110  receives requests from the client  120  for a particular document. The server  120  processes the requested document, converting it to image data that is understood by the client, and transmitting processed image data back to the client  120 . In various exemplary embodiments, the server  110  creates the image data based on the selection of parameters detected from the client  120 , the network  130 , or a combination thereof. In various other exemplary embodiments, the server  110  creates the image data based on a selection of parameters prestored at the server  110  regarding the capabilities or requirements of the client  120  and the network  130 . 
   In various exemplary embodiments, the server  110  processes the image data based on client device/handset display hardware and/or software capabilities, image formats supported by the client device/handset, network bandwidth, document file format, document content, user hints and the like. In various other exemplary embodiments, the server  110  receives the selection of parameters sent from the client  120 , based on various user inputs. 
   As part of the server based image processing operations, the server  110  also compresses the processed image data before transmitting the image data to client  120 . In various exemplary embodiments, the server  110  compresses the processed image data using tonal reproduction curves (TRC) and/or custom color maps, as described in detail in U.S. patent application Ser. No. 10/901,333, now U.S. Pat. No. 7,539,341, entitled “Systems and Methods For Processing Image Data Prior To Compression” and U.S. patent application Ser. No. 10/901,240, entitled “Client Dependent Image Processing For Browser-Based Image Document Viewer for Handheld Client Devices”, both applications being incorporated herein by reference in their entirety. 
   The server  110  is generally associated with a computer, as described in greater detail below in connection with  FIG. 4 . The client  120  is a device that can display a form of the processed and compressed image data. The client  120  receives the processed and compressed image data from the server  110  via the network  130 . In various exemplary embodiments, the client  120  sends a request for the image data to the server  110  before receiving the processed and compressed data. In various exemplary embodiments, the client  120  selects and sends one or more parameters to the server  110  as a condition for the server  110  to process the data before processing the data. 
   In various exemplary embodiments, the client  120  is a mobile device, such as a laptop computer, a personal data assistant (PDA), a cellular phone, an electronic computing graphics tablet-like device, a handheld computing device and the like. 
   The network  130  transmits data, requests or other information between the server  110  and the client  120 . In various exemplary embodiments, the network  130  is a wired network. In various other exemplary embodiments, the network  130  is a wireless network. In various other exemplary embodiments, the network  130  includes both wired and wireless networks. In various exemplary embodiments, the network  130  includes the Internet. A user may view processed data on a web browser on the client  120 . In various other exemplary embodiments, the network  130  includes a wireless cellular phone network or any other existing or yet to be invented communication network. A user may view the processed data displayed on a cellular phone at the client  120 . 
   It will be noted that the following discussion does not discuss in detail all the server-based image processing operations that may be performed, or that are possible, according to various exemplary embodiments of systems and methods of this invention. Some of the image processing operations/effects that are discussed below are well known in the art and are relatively straight forward. Thus, these image processing operations/effects are not discussed in detail below. For example, if the client only supports GIF image formats, only those files will be created. Other image processing operations/effects, such as, for example, crop windows, image orientation, and the like, may also be practiced according to various exemplary embodiments of the systems and methods of this invention. 
     FIG. 2  is a flowchart outlining one exemplary embodiment of a method for server based processing of a document requested by a client according to this invention. It will be noted that the server based image processing will lead to a different image processing of the same page/document if viewed by two different client devices with different capabilities or attributes. It should also be noted that two different documents will undergo different image processing even for the identical client based on document attributes. That is, not all the steps of the exemplary server based image processing method shown in  FIG. 2  may be performed for every document being processed. 
   As shown in  FIG. 2 , beginning in step S 110 , operation of the method continues to step S 120 , where a server receives a request for a document from a client via a network. In various exemplary embodiments, the server may receive the request to provide a rendition of at least a part of the document image information in a browser application of the client device. In various exemplary embodiments, the request is a signal generated when a user clicks an icon/link displayed at the client. The icon/link represents document data to be processed. 
   In step S 130 , the server determines the type of document format that is supported by the client display. Next, at step S 140 , the server performs one or more server based image processing operations of the requested document image information based on the document format determined. In various exemplary embodiments, performing one or more server based image processing operations may include determining one or more parameters associated with at least one of the client device, a data network to transmit the at least a part of the document image information to the browser of the client device, a requested document file format and user-provided hints. In various exemplary embodiments, determining the one or more parameters may be performed dynamically, without operator intervention. 
   In various exemplary embodiments, the one or more server based image processing operations may include processing of the image information based on one or more of at least a client device make or model, client device input capabilities (pen or roller), client device display capabilities (X by Y pixels, pixels per inch in X and Y, color depth, color model), type of image formats supported by the client device browser application (file formats, compression, progressive/interlaced), client device browser capabilities (tables, image maps), an image data display zoom level requested by the client device, a bandwidth of the data transmission network, a transmission speed of the network and a type and/or content of document requested by the client device and user-provided hints for displaying the image data. Further, processing image information may also based on knowledge obtained from a current user&#39;s session. 
   Following the processing of the document data, at step S 150 , the server based processed data is transmitted to the client device for display on the client device, for example on the client device browser. The user has the ability to navigate the document, for example, page selection, pan, zoom, rotate, as well as the ability to provide for image quality requests, e.g., request a service schematic, medical x-ray, insurance claim, real estate listing, sharpen the image, black/white or color image requests, invert image, color correct, and the like, using the browser. 
   At step S 160 , a determination is made whether additional server based image processing operations are required. If it is determined that additional server based image processing operations are not required, operation of the method continues to step S 170 , where the operation stops. It should be noted that based on server load, user preferences or system settings, additional processing might be initiated on the server anticipating a new user request. If that data is subsequently requested by the user, a faster response time is achieved. If the data is not requested it discarded or held as temporary data for some amount of time until it is requested or discarded. 
   If, however, it is determined that additional server based image processing operations are required, operation of the method returns to step S 140  for further server based image processing. For example, if a different view setting is required, e.g., a different zoom or location within the document, the user, through the client device, will generate a new request. The client device will transmit the user request to the server. The server then prepares a new image according to the client request, and transmits the new image to the client device. The operation is repeated as desired by at least the user. 
     FIG. 3  is a flowchart outlining in greater detail one exemplary embodiment of various server based image processing operations performed at step S 140  by the server according to the method of  FIG. 2 . In various exemplary embodiments, the server based image processing operations include the steps of running the document application in order to create a data file that can be ‘RIPped’ into an image raster. All raster operations are then performed, such as, for example, rotation, scaling, cropping, enhancement, and the document image data is transformed into a client native format. For standard browser applications, this is either GIF, JPG or WBMP (WAP) format in the suitable size. 
   As shown in  FIG. 3 , the server based image processing operations begin at step S 140  and continue to step S 1410  where the requested document is converted to a raster image on the server using well known raster image processing (RIP) techniques. This raster image generally uses some client capabilities, such as, for example, black and white rendering for a black and white device, and some document attributes, for example, lower initial resolution for PowerPoint documents compared to Word documents. The use of document attributes can be understood when considering the likelihood that certain document types will have certain properties. Presentation slides, for example, will have larger fonts and thus generally require a lower initial RIP resolution than legal documents. 
   Next, at step S 1420 , the ‘RIPed’ data is subsequently scaled to the desired zoom settings. For example, in various exemplary embodiments, the data may be scaled to one of the current prototype mDoc version 4 zoom settings, e.g., 2, 4, 8 and 16 reduction, using a density preserving reduction (filter &amp; down sampling) leading to 5 raw images at the 5 different resolutions. The raw images may not yet adhere to the client color and bit-depth requirements. 
   Following data scaling, operation of the method continues to step S 1430  where image filtering is performed. At high reduction levels, the page content can only be “guessed” by the user. Twelve point text, for example, would be rendered at single pixel height for most letters. In various exemplary embodiments of the methods and systems according to this invention, the image sharpness is strongly increased for higher reduction factors, well above any limit that would be used for normal image viewing. However, increasing the sharpness at high reduction factors gives the user the perception of “text” without making the text readable. For the exemplary prototype mDoc application, speed is an important consideration as it directly influences user latency. As a speed/quality compromise, in one exemplary embodiment, a 5 element filter was chosen where four ring values are constant (“−1”) and the center value is varied. Smaller center values yield stronger enhancement. Other techniques known in the art or later developed may also be used to perform image filtering operations. 
   After image sharpening, at step S 1440 , enhancement TRCs are used to further increase the contrast of the data. The TRCs are a function of reduction factors (stronger enhancement for higher reductions) and of document applications. In this case, presentation slides and scanned data undergoes an essential symmetric contrast enhancement. Text documents and spreadsheets undergo a non-symmetric enhancement leading to a strong visual darkening. This is based on the likelihood that different color and foreground/background schemes are used in the different document types. 
   At step S 1450 , a data compression operation is performed. As part of the data compression operation, data compression parameters may be varied based on transmission bandwidth and client storage capabilities, as well as other factors. In the binary case, no variation can be obtained at this step directly, but rather a different enhancement can be performed. For color clients, a choice exists between JPEG and GIF compressions, since both are normally supported in the browser. In JPEG compression, only the Q-table can be used to change compression ratios, where a changing Q-factor in essence represents a scaled and thus different Q-Table. For the “GIF compression” (better in the GIF format encapsulated compression method), the compression efficiency may be modified by the initial color mapping. For the discussion presented below, a dynamic color mapping between “222” (8 colors) and “794” (252 colors) is assumed, as described in detail in U.S. patent application entitled “Systems and Methods For Processing Image Data Prior To Compression,” which is incorporated herein by reference in its entirety. 
   Following data compression, the method continues to step S 1460  where a data formatting operation is performed. Following formatting of the data, the processed document/image is transmitted to the client device, step S 150 . 
   Table 1 is an exemplary embodiment of an image processing table showing the different image processing aspects as a function of reduction (zoom setting) and application. In Table 1, TRC name 64L indicates a TRC that is non-symmetric (“L”eft) and that maps all pixel values below 64 to “black”. A TRC name 32 indicates a symmetric TRC that maps all values below 32 to black and all values above 223 to white. The rest of the range is a linear mapping between black and white. The term “reduce” refers to a filtered subsampling, preferably maintaining image density attributes. 
   
     
       
             
             
             
             
             
           
             
             
             
             
             
           
             
             
             
             
             
             
             
             
             
           
             
             
             
             
             
           
             
             
             
             
             
             
             
             
             
           
         
             
                 
               TABLE 1 
             
             
                 
                 
             
             
                 
               Word 
               Spread- 
               Presen- 
                 
             
             
                 
               processor 
               sheet 
               tation 
               Scan 
             
             
                 
                 
             
           
           
             
                 
             
           
        
         
             
               RIP 
               150 
               150 
               75 
               — 
             
             
               Resolution 
             
             
               Scale Method 
               Reduce 
               Reduce 
               Reduce 
               Reduce 
             
             
               Zoom level 
               1, 2, 3, 4 
               1, 2, 3, 4 
               1, 2, 3 
               1, 2, 3, 4 
             
             
               Enhance 
               TRC 
               TRC 
               TRC 
               TRC 
             
             
               Method 
               stretching 
               stretching 
               stretching 
               stretching 
             
           
        
         
             
               Enhance TRC 
               1 
               NO 
               1 
               NO 
               1 
               NO 
               1 
               32 
             
             
               For different 
               2 
               32L 
               2 
               32L 
               2 
               32 
               2 
               50 
             
             
               scale factors 
               3 
               64L 
               3 
               64L 
               3 
               50 
               3 
               64 
             
             
               Linear 
               4 
               100L  
               4 
               100L  
                 
                 
               4 
               64 
             
           
        
         
             
               between: 
               5 Element 
               5 Element 
               5 Element 
               5 Element 
             
             
               Filter method 
               sharpen 
               sharpen 
               sharpen 
               sharpen 
             
           
        
         
             
               Center Value 
               1 
               NO 
               1 
               NO 
               1 
               NO 
               1 
               NO 
             
             
                 
               2 
               8 
               2 
               8 
               2 
               8 
               2 
               8 
             
             
                 
               3 
               8 
               3 
               8 
               3 
               8 
               3 
               8 
             
             
                 
               4 
               6 
               4 
               6 
                 
                 
               4 
               6 
             
             
                 
             
           
        
       
     
   
   As can be observed from Table 1, different image processing settings are used for different document types and zoom levels. The exemplary values given in Table 1 are currently used in an exemplary mDoc viewer demo produced by the inventors. For binary clients, such as for example, WAP phoned, processing stops at the level of Table 1, with only the file format conversion to WBMP being done after the image processing. For color capable clients, some additional steps, which are well known in the art, may be added. 
   One advantages of exemplary systems and methods according to this invention is that, even without client based software, arbitrary documents can be viewed in the server based viewing scenario. This approach enables cell phones, PDAs and other small mobile devices to browse document storage locations, to retrieve documents for viewing or printing and to access crucial data from any location in the world. 
     FIG. 4  is a functional block diagram of an exemplary embodiment of a server based image processing system  400  according to this invention. As shown in  FIG. 4 , the server based image processing system  400  may include an input/output (I/O) interface  420 , a controller  430 , a memory  440 , a parameter selecting circuit, routine or application  445 , an application library  447 , a raster image processing circuit, routine or application  450 , a document data scaling circuit, routine or application  460 , an image filtering circuit, routine or application  470 , an image enhancement circuit, routine or application  480 , a data compression circuit, routine or application  490 , and a data formatting circuit, routine or application  495 , each interconnected by one or more control and/or data buses and/or application programming interfaces  500 . 
   In various exemplary embodiments, the server based image processing system  400  is implemented on a programmable general purpose computer. However, the server based image processing system  400  can also be implemented on a special purpose computer, a programmed microprocessor or microcontroller and peripheral integrated circuit elements, an ASIC or other integrated circuits, a digital signal processor (DSP), a hard wired electronic or logic circuit, such as a discrete element circuit, a programmable logic device such as a PLD, PLA, FPGA or PAL, or the like. In general, any device capable of implementing a finite state machine that is in turn capable of implementing the flowchart shown in  FIGS. 2 and 3  can be used to implement the server based image processing system  400 . 
   The input/output interface  420  interacts with the outside of the server based image processing system  400 . In various exemplary embodiments, the input/output interface  420  may receive input from the outside, such as a network, via one or more links  410 . The input/output interface  420  may output data for subsequent delivery or transmission via the one or more links  410  to a client device (shown in  FIG. 2 ). 
   The one or more links  410  may be direct connections, or may be implemented using a connection device such as a modem, a local area network, a wide area network, an intranet, the Internet, and any other distributed processing network, or any other known or later-developed connection device. 
   As shown in  FIG. 4 , the memory  440  includes a parameter default selection portion  441  and one or more client dependent image processing table(s)  442 . The parameter default selection portion  441  stores default selections of parameters for at least the client devices (“clients”). The parameter default selection portion  441  can also store parameters of various networks and display devices. The one or more client dependent image processing table(s)  442  stores different image processing settings that are used for different document types, zoom levels, and the like. 
   The memory  440  may also store any data and/or program necessary for implementing the functions of the server based image processing system  400 . For example, in an exemplary embodiment, the memory  440  may also store the application library  447 . As discussed above, as part of server based image processing operations, the application file associated with the document being requested to be viewed by the client device has to be interpreted by the server. Thus, the server based image processing system  400  includes the specific application, or a different application that allows viewing of the application. 
   The memory  440  can be implemented using any appropriate combination of alterable, volatile, or non-volatile memory or non-alterable or fixed memory. The alterable memory, whether volatile or non-volatile, can be implemented using any one or more of static or dynamic RAM, a floppy disk and a disk drive, a writable or rewritable optical disk and disk drive, a hard drive, flash memory or the like. Similarly, the non-alterable or fixed memory can be implemented using any one or more of ROM, PROM, EPROM, EEPROM, an optical ROM disk, such as a CD-ROM or a DVD-ROM disk and disk drive or the like. 
   In the exemplary embodiments of the server based image processing system  400  shown in  FIG. 4 , the parameter selecting circuit, routine or application  445 , under the control of controller  430 , determines a selection of parameters. In various exemplary embodiments, the parameter selecting circuit, routine or application  445  determines the selection of parameters based on the specific characteristics of the client device, a user&#39;s instructions, a default selection stored in the memory  440 , and/or detected features of the network, the client and/or the document type. In various exemplary embodiments, a detection may be made by detecting a network and/or device type, coupled with parameters stored for that network/device type. In various exemplary embodiments, different documents are processed differently. For example, a Word™ document is processed differently from a PowerPoint™ document, with the corresponding application files being rendered using appropriate application software from library  447 . As discussed above, the various exemplary embodiments of the systems and methods according to this invention do not require a specific application, e.g., Word™, to read Word files. Instead, all that is need is an application that understands the specific file format of the requested document. In various exemplary embodiments, different client devices process the same document differently. 
   The raster image processing circuit, routine or application  450 , under the control of controller  430 , converts a document requested by the client to a raster image on the server using well known raster image processing (RIP) techniques. 
   The document data scaling circuit, routine or application  460 , under the control of controller  430 , scales the ‘RIPed’ data to the desired zoom settings. For example, in various exemplary embodiments, the data may be scaled to one of the current prototype mDoc version 4 zoom settings, e.g., 2, 4, 8 and 16 reduction, using a density preserving reduction (filter &amp; down sampling) leading to 5 raw images at the 5 different resolutions. 
   The image filtering circuit, routine or application  470 , under the control of controller  430 , performs image filtering of the scaled data. In various exemplary embodiments of the methods and systems according to this invention, the image sharpness is strongly increased for higher reduction factors, well above any limit that would be used for normal image viewing. 
   The image enhancement circuit, routine or application  480 , under the control of controller  430 , uses enhancement TRCs to further increase the contrast of the data. 
   Following image enhancement, the data compression circuit, routine or application  490 , under the control of controller  430 , compresses the processed data. In various exemplary embodiments, the data compression circuit, routine or application  490  compresses the processed image data using tonal reproduction curves (TRC) to suppress backgrounds and to further enhance the perception of detail, and optionally custom color maps of the enhanced data, as described in detail in U.S. patent application Ser. No. 10/901,333, now U.S. Pat. No. 7,539,341, entitled “Systems and Methods For Processing Image Data Prior To Compression”, which is incorporated herein by reference in its entirety. 
   The data formatting circuit, routine or application  495 , under the control of controller  430 , finally formats the data prior to transmitting the data over the network to the client device. In various exemplary embodiments, the data formatting circuit, routine or application  495  formats the data based on one or more client dependent image processing table(s)  442 . As discussed above, tables  442  store different image processing settings that are used for different document types, zoom levels, and the like. 
   While particular embodiments have been described, alternatives, modifications, variations and improvements may be implemented within the spirit and scope of the invention.