Abstract:
A display technique determines the desired size of an object to be displayed (using a distance dependent measure such as visual arc angle), determines the distance between the display unit and a user, and adjusts the size of the displayed object based on the desired size and measured distance. By repeatably determining the distance between the user and display unit, each displayed object may be dynamically adjusted to maintain an approximately constant size display, from the users point of view. The display technique may be implemented in hardware, software, or a combination of hardware and software. One benefit of the display technique is that eye strain can be reduced while working at a computer display unit.

Description:
BACKGROUND  
       [0001]     The invention relates generally to the control and display of visual information on a computer system display device.  
         [0002]     In current windows-based computer display systems, font and window display sizes are proportional to the viewable area of a display unit. For example, font and display window sizes are generally specified in terms of “points,” where a point is approximately {fraction (1/72)} of an inch. In many windows-based computer display systems the number of pixels (e.g., size) used to display a font letter or window remains constant regardless of how far or near the user is to the display. From a user&#39;s perspective, however, text and other graphical objects appear to change size as the user&#39;s distance from the display unit changes. Thus, it would be beneficial to provide a mechanism to dynamically adjust the size of graphical objects based on a user&#39;s distance from a display unit.  
       SUMMARY  
       [0003]     In one aspect, the invention provides a method to dynamically adjust the size of an object displayed on a display unit. Illustrative objects include fonts and program application windows. The method includes determining the distance between a display unit and a user, and adjusting the size of the displayed object based on the measured distance. A desired display size may also be identified—generally in terms of a distance-dependent measure such as visual arc angle. The method may further include the capability to repeatably adjust the displayed object&#39;s size, e.g., once every second, without user intervention. In one embodiment, a device driver (using application programming interface calls) communicates between the distance detector and an application to adjust the size of the displayed object. Instructions embodying a method in accordance with the invention may be stored in any media that is readable and executable by a computer system.  
         [0004]     In other aspects, the invention provides an apparatus and computer system capable of providing dynamic control of a displayed object&#39;s size based on a measured distance between the display unit and the user. The distance measuring device may be a video device such as a video camera(s) or a charged coupled device(s) and may be an integral part of the computer system or a stand-alone device such as an adapter card. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0005]      FIG. 1  shows an illustrative computer system that may be used to dynamically adjust the size of displayed objects.  
         [0006]      FIG. 2  shows a method in accordance with one embodiment of the invention to dynamically adjust the size of displayed objects.  
         [0007]      FIG. 3  shows an illustrative technique to calculate a target object size in accordance with the invention.  
         [0008]      FIG. 4  shows another illustrative technique to calculate a target object size in accordance with the invention. 
     
    
     DETAILED DESCRIPTION  
       [0009]     Techniques (including methods and devices) to dynamically adjust the size of objects displayed on a computer system display unit are described. The following embodiments of this inventive concept are illustrative only and are not to be considered limiting in any respect.  
         [0010]     Referring to  FIG. 1 , an illustrative computer system  100  having a distance detector  102  is shown. Computer system  100  includes host processor  104  and associated cache memory  106  connected to system bus  108  through bridge circuit  110 . Illustrative host processors  104  include the PENTIUM® II processor, the PENTIUM® PRO processor, and the 80×86 families of processors from Intel Corporation. One illustrative bridge circuit  110  is the 82443LX PCI-to-AGP controller manufactured by Intel Corporation.  
         [0011]     Bridge circuit  110  provides an interface to connect system random access memory (RAM)  112  and accelerated graphics port (AGP)  114  devices, and one or more expansion slots  120 . Video controller  116  and associated display unit  118  may be coupled through AGP port  114 . Expansion slots  120  may be personal computer memory card international association (PCMCIA) slots.  
         [0012]     Bridge circuit  122  connects system bus  108  to secondary bus  124 , while also providing integrated device electronics (IDE)  126  and universal serial bus (USB)  128  interfaces. Common IDE devices include magnetic and optical disk drives. Distance detector  102  may be connected through a USB port  128  or, alternatively, to system bus  108  or secondary bus  124  through conventional means. Also connected to secondary bus  124  are input-output (I/O) circuit  130 , keyboard controller (KYBD)  132 , system read only memory (ROM)  134 , and audio device  136 . One illustrative bridge circuit  122  is the 82371AB PCI-to-ISA/IDE controller made by Intel Corporation. Input-output circuit  130  can provide an interface for parallel  138  and serial  140  ports, floppy disks  142 , and infrared ports  144 .  
         [0013]     An illustrative method for using information provided by distance detector  102  to dynamically adjust the size of a displayed object is shown in  FIG. 2 . When invoked (e.g., at computer system  100  startup, step  200 ), computer system  100  determines the desired size of a font or window (step  202 ) and the distance between distance detector  102  and a viewer (step  204 ). With this information, the size of a displayed object may be adjusted (step  206 ). Steps  204  and  206  may be repeated after a specified pause (step  208 ).  
         [0014]     Users may specify a “desired size” in terms of visual arc angle which may be stored in any convenient non-volatile memory accessible by processor  104 . For example, a value representative of the user&#39;s desired size may be stored in CMOS type RAM  112 , on a magnetic hard disk (e.g., coupled through IDE port  126 ), or a floppy disk drive  142 . Alternatively, a user may be prompted to provide this information either at startup time or whenever a perceptually-based display capability is invoked.  
         [0015]      FIG. 3  and Table 1 illustrate the correspondence between the specified visual angle (size), the distance between the user/viewer, and a displayed font size. For example, if the specified visual angle α is 0.2 degrees, and user  300  is four feet (d) from display unit  118 , font  302  (h) should be approximately 12 points. If user  300  moves to a distance of six feet away from display unit  118  (i.e., d=72 inches), font  302  may be adjusted to approximately 18 points. This approach (see  FIG. 2 ) allows a user to specify a relative viewing size which may be adjusted automatically as the user moves closer to and farther away from display unit  118 . One benefit of this inventive concept is that eye strain can be reduced while working at a computer display unit. An alternative computational approach is shown in  FIG. 4  and Table 2.  
               TABLE 1                       Correspondence Between Font Size, Distance, and a Specified Size       (see  FIG. 4 )                   tan(α) = h/d       h = d tan(α)       If d is measured in inches, then       h′ = 72 d tan(α)       represents the font size(in points) that accommodates the       specified visual arc angle α.                    
         [0016]    
       
         
               
             
           
               
                 TABLE 2 
               
               
                   
               
               
                   
               
               
                 An Alternative Correspondence Between Font Size, Distance, and 
               
               
                 Specified Size(see  FIG. 4 ) 
               
               
                   
               
             
             
               
                 tan(β) = h/d 
               
               
                 x = h/2 = d tan(β) 
               
               
                 h = 2 d tan(β) 
               
               
                 If d is measured in inches, then 
               
               
                 h′ = 144 d tan(β) 
               
               
                 represents the font size(in points) that accommodates the specified 
               
               
                 visual arc angle α. 
               
               
                   
               
             
          
         
       
     
         [0017]     Distance detector  102  may be a video device, such as a charged coupled device or video camera, coupled through USB port  128  as shown in  FIG. 1 . In another embodiment, distance detector  102  may be coupled to system bus  108  or secondary bus  124  through an adapter card in a conventional manner. In alternative embodiments, distance detector  102  may be an infrared or acoustic range detector.  
         [0018]     One technique to approximate distance d (see step  204  in  FIG. 2  and  FIG. 3 ) is to detect the user&#39;s pupils and use standard tables to translate the measured pupil size to an estimate of distance d. Further, the computational resources needed to perform these image processing tasks may be performed by processor  104  or by special purpose hardware and/or software on a dedicated device. The dedicated device may be one component of distance detector  102 , a separate circuit contained on, for example, an adapter card, or a combination of these possibilities.  
         [0019]     Display adjustment (step  206  in  FIG. 2 ) may be performed by an operating system device driver. For example, a device driver can communicate with a user&#39;s word processing application by way of application programming interface (API) calls to increase or decrease the size of the application&#39;s font and/or window size. The specific API calls will generally depend upon the target application program (e.g., graphics application or word processing application).  
         [0020]     After making one display adjustment in step  206  of  FIG. 2 , a specified time period may be allowed to elapse (step  208  of  FIG. 2 ) before another adjustment is made. One means of generating a pause is to have the device driver (discussed above) periodically poll distance detector  102 . Alternatively, distance detector  102  may generate interrupts at specified time periods which the device driver can then process. In either case, the amount of time between successive display adjustments may be short enough to capture relatively large movements by a user, but not so short as to require excessive processor resources (e.g., processor  104  time) or that exceed the ability of the image processing software and/or hardware to keep up with the video information provided by the device. One illustrative update period is one second.  
         [0021]     Various changes in the materials, components, circuit elements, as well as in the details of the illustrated operational method are possible without departing from the scope of the claims. For example, instead of using a single video device, two video devices may be used to stereoscopically detect and measure the distance between the computer display unit and a user. Further, distance detector  102  may be embodied in a single hardware device such as a printed circuit board comprising discrete logic, integrated circuits, or specially designed application specific integrated circuits (ASIC). In addition, method steps of  FIG. 2  may be performed by a computer processor executing instructions organized into a program module or a custom designed state machine. Storage devices suitable for tangibly embodying computer program instructions include all forms of non-volatile memory including, but not limited to: semiconductor memory devices such as EPROM, EEPROM, and flash devices; magnetic disks (fixed, floppy, and removable); other magnetic media such as tape; and optical media such as CD-ROM disks.