Patent Publication Number: US-2006012602-A1

Title: System and method for efficiently performing automatic partial transfers of image data

Description:
BACKGROUND SECTION  
      1. Field of Invention  
      This invention relates generally to electronic display controller systems, and relates more particularly to a system and method for efficiently performing automatic partial transfers of image data.  
      2. Description of the Background Art  
      Implementing efficient methods for displaying electronic image data is a significant consideration for designers and manufacturers of contemporary electronic devices. However, efficiently displaying image data with electronic devices may create substantial challenges for system designers. For example, enhanced demands for increased device functionality and performance may require more system operating power and require additional hardware resources. An increase in power or hardware requirements may also result in a corresponding detrimental economic impact due to increased production costs and operational inefficiencies.  
      Furthermore, enhanced device capability to perform various advanced display control operations may provide additional benefits to a system user, but may also place increased demands on the control and management of various device components. For example, an enhanced electronic device that efficiently manipulates, transfers, and displays digital image data may benefit from an efficient implementation because of the large amount and complexity of the digital data involved.  
      Due to growing demands on system resources and substantially increasing data magnitudes, it is apparent that developing new techniques for controlling the display of electronic image data is a matter of concern for related electronic technologies. Therefore, for all the foregoing reasons, developing efficient systems for displaying electronic image data remains a significant consideration for designers, manufacturers, and users of contemporary electronic devices.  
     SUMMARY  
      In accordance with the present invention, a system and method are disclosed for efficiently performing automatic partial transfers of image data. In certain embodiments, an electronic device may be implemented to include a central-processing unit (CPU), one or more displays, and a display controller. A rectangle module of the display controller monitors on-screen data in a video memory for image-data write operations during which the CPU or other appropriate entities transfer image data into on-screen data for display.  
      When such image-data write operations occur, the rectangle module performs a rectangle update procedure to ensure that a current updated transfer rectangle includes all newly-updated image pixels. Therefore, whenever an automatic partial transfer operation is initiated by the display controller for transferring image data from the video memory to the display, only altered image data from the current updated transfer rectangle need be transferred, instead of inefficiently transferring entire frames of image data during each transfer operation.  
      In certain embodiments, an automatic transfer module of the display controller monitors a transfer flag in control registers of the display controller. The transfer flag may be set by controller logic of the display controller in response to any appropriate stimulus or event. For example, a transfer clock may trigger the controller logic to set the transfer flag after a pre-determined transfer interval has been exceeded, or the controller logic may detect that a total written pixel value from a write operation counter has exceeded a pre-determined write-operation pixel threshold.  
      If the automatic transfer module detects that the transfer flag has been set, then the automatic transfer module performs an automatic transfer configuration procedure with the display of the host electronic device to set up a corresponding automatic partial transfer operation of image data corresponding to a current transfer rectangle in video memory of the display controller. In accordance with the present invention, the automatic transfer module may then perform the automatic partial transfer operation by sending image data from the current transfer rectangle from video memory of the display controller to a display of the host electronic device  
      In response, display logic of the display stores the transferred image data from the current transfer rectangle into a designated location in a display memory, as specified by the automatic transfer module during the foregoing automatic transfer configuration procedure. Finally, the display may display image data from the display memory on one or more screens for viewing by a device user. In accordance with the present invention, the automatic transfer module therefore automatically and transparently manages automatic partial transfer operations to efficiently provide transfer rectangles of image data to a display of a host electronic device.  
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       FIG. 1  is a block diagram for one embodiment of an electronic device, in accordance with the present invention;  
       FIG. 2  is a block diagram for one embodiment of the display controller of  FIG. 1 , in accordance with the present invention;  
       FIG. 3  is a block diagram for one embodiment of the video memory of  FIG. 2 , in accordance with the present invention;  
       FIG. 4  is a block diagram for one embodiment of the controller registers of  FIG. 2 , in accordance with the present invention;  
       FIG. 5  is a block diagram for one embodiment of the display of  FIG. 1 , in accordance with the present invention;  
       FIG. 6  is a block diagram illustrating a transfer rectangle updating procedure, in accordance with one embodiment of the present invention;  
       FIG. 7  is a flowchart of method steps for performing automatic transfer operations, in accordance with one embodiment of the present invention; and  
       FIG. 8  is a flowchart of method steps for performing an automatic transfer configuration procedure, in accordance with one embodiment of the present invention.  
    
    
     DETAILED DESCRIPTION  
      The present invention relates to an improvement in display controller systems. The following description is presented to enable one of ordinary skill in the art to make and use the invention, and is provided in the context of a patent application and its requirements. Various modifications to the embodiments disclosed herein will be apparent to those skilled in the art, and the generic principles herein may be applied to other embodiments. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features described herein.  
      The present invention comprises a system and method for performing automatic partial transfers of image data, and includes a display controller with controller logic, a rectangle module, and an automatic transfer module. The rectangle module detects write operations to on-screen data in a video memory, and then updates a transfer rectangle to include written data from the foregoing write operations. The controller logic sets a transfer flag in response to a transfer trigger event in the display controller for initiating an automatic partial transfer operation from the video memory to a display device. The automatic transfer module performs automatic transfer configuration procedures to prepare the display device for the automatic partial transfer operation. The automatic transfer module then automatically transfers rectangle data of the transfer rectangle from the video memory to the display device to complete the automatic partial transfer operation.  
      Referring now to  FIG. 1 , a block diagram for one embodiment of an electronic device  110  is shown, according to the present invention. The  FIG. 1  embodiment includes, but is not limited to, a central processing unit (CPU)  122 , an input/output interface (I/O)  126 , a display controller  128 , a device memory  130 , and one or more display(s)  134 . In alternate embodiments, electronic device  110  may include elements or functionalities in addition to, or instead of, certain of the elements or functionalities discussed in conjunction with the  FIG. 1  embodiment.  
      In the  FIG. 1  embodiment, CPU  122  may be implemented as any appropriate and effective processor device or microprocessor to thereby control and coordinate the operation of electronic device  110  in response to various software program instructions. In the  FIG. 1  embodiment, device memory  130  may comprise any desired storage-device configurations, including, but not limited to, random access memory (RAM), read-only memory (ROM), and storage devices such as removable memory or hard disk drives. In the  FIG. 1  embodiment, device memory  130  may include, but is not limited to, a device application of program instructions that are executed by CPU  122  to perform various functions and operations for electronic device  110 . The particular nature and functionality of the device application typically varies depending upon factors such as the type and specific use of the corresponding electronic device  110 .  
      In the  FIG. 1  embodiment, the foregoing device application may include program instructions for allowing CPU  122  to provide image data and corresponding transfer and display information via host bus  138  to display controller  128 . In accordance with the present invention, display controller  128  then responsively provides the received image data via display bus  142  to at least one of the display(s)  134  of electronic device  110 . In the  FIG. 1  embodiment, input/output interface (I/O)  126  may include one or more interfaces to receive and/or transmit any required types of information to or from electronic device  110 . Input/output interface  126  may include one or more means for allowing a device user to communicate with electronic device  110 . In addition, various external electronic devices may communicate with electronic device  110  through I/O  126 . For example, a digital imaging device, such as a digital camera, may utilize input/output interface  126  to provide captured image data to electronic device  110 .  
      In the  FIG. 1  embodiment, electronic device  110  may advantageously utilize display controller  128  for efficiently managing various operations and functionalities relating to display(s)  134 . The implementation and functionality of display controller  128  is further discussed below in conjunction with  FIGS. 2-4  and  6 - 10 . In the  FIG. 1  embodiment, electronic device  110  may be implemented as any desired type of electronic device or system. For example, in certain embodiments, electronic device  110  may alternately be implemented as a cellular telephone, a personal digital assistant device, an electronic imaging device, a cellular telephone, or a computer device. Various embodiments for the operation and utilization of electronic device  110  are further discussed below in conjunction with  FIGS. 2-8 .  
      Referring now to  FIG. 2 , a block diagram for one embodiment of the  FIG. 1  display controller  128  is shown, according to the present invention. The  FIG. 2  embodiment includes, but is not limited to, controller logic  212 , video memory  216 , controller registers  220 , a rectangle module  224 , and an automatic transfer module (ATM)  228 . In alternate embodiments, display controller  128  may include elements or functionalities in addition to, or instead of, certain of the elements or functionalities discussed in conjunction with the  FIG. 2  embodiment.  
      In the  FIG. 2  embodiment, display controller  128  may be implemented as an integrated circuit device that accepts image data and corresponding transfer and display information from CPU  122  ( FIG. 1 ). Display controller  128  then automatically provides the received image data to display  134  of electronic device  110  in an appropriate and efficient manner for displaying to a device user. In the  FIG. 2  embodiment, controller logic  212  manages the overall operation of display controller  128 . In certain embodiments, controller logic  212  may include, but is not limited to, an image creation module. The image creation module manages reading image data from video memory  216 , and forming corresponding image pixels for display according to information from controller registers  220 .  
      In the  FIG. 2  embodiment, display controller  128  may utilize rectangle module  224  for creating and updating transfer rectangles of image pixels for performing transfer operations from display controller  128  to display  134 . In accordance with the present invention, display controller  128  advantageously utilizes automatic transfer module (ATM)  228  for automatically performing partial transfer operations of image data from display controller  128  to display  134 . Certain embodiments for the implementation and utilization of rectangle module  224  are further discussed below in conjunction with  FIGS. 6-7 . In addition, certain embodiments for the implementation and utilization of automatic transfer module  228  are further discussed below in conjunction with  FIGS. 7-8 .  
      Referring now to  FIG. 3 , a block diagram for one embodiment of the  FIG. 2  video memory  216  is shown, in accordance with the present invention. In the  FIG. 3  embodiment, video memory  216  includes, but is not limited to, on-screen data  312  and off-screen data  316 . In alternate embodiments, video memory  216  may include elements and functionalities in addition to, or instead of, certain of the elements and functionalities discussed in conjunction with the  FIG. 3  embodiment.  
      In the  FIG. 3  embodiment, video memory  216  may be implemented by utilizing any effective types of memory devices or configurations. For example, in certain embodiments, video memory  216  may be implemented as a random-access memory (RAM) device. In the  FIG. 3  embodiment, on-screen data  312  and off-screen data  316  are each shown as single contiguous memory blocks in video memory  216 . However, in various other embodiments, different components of on-screen data  312  and/or off-screen data  316  may readily be stored as multiple non-contiguous memory blocks within video memory  216 .  
      In the  FIG. 3  embodiment, CPU  122  ( FIG. 1 ) writes image data into on-screen data  312  for transfer by display controller  128  to display  134  of electronic device  110  for viewing by a device user. In the  FIG. 3  embodiment, on-screen data  312  includes any appropriate type of information for display upon a screen of display  134  ( FIG. 1 ). For example, on-screen data  312  may include main image data corresponding to a main window area on display  134 . In addition, on-screen data  312  may include picture-in-picture (PIP) image data corresponding to one or more picture-in-picture window areas that are positioned within the foregoing main window area on display  134 .  
      In the  FIG. 3  embodiment, off-screen data  316  may include any appropriate type of information or data that is not displayed upon display  134  of electronic device  110 . For example, off-screen data  316  may be utilized to support various types of double buffering schemes for display controller  128 , or may also be utilized to cache certain fonts or other objects for use by display controller  128 . The utilization of video memory  216  is further discussed below in conjunction with  FIGS. 6-8 .  
      Referring now to  FIG. 4 , a block diagram for one embodiment of the  FIG. 2  controller registers  220  is shown, in accordance with the present invention. In the  FIG. 4  embodiment, controller registers  220  include, but are not limited to, configuration registers  412 , transfer registers  416 , miscellaneous registers  420 , and a transfer flag  424 . In alternate embodiments, controller registers  220  may include elements and functionalities in addition to, or instead of, certain of the elements and functionalities discussed in conjunction with the  FIG. 4  embodiment.  
      In the  FIG. 4  embodiment, CPU  122  ( FIG. 1 ) or other appropriate entities may advantageously write information into controller registers  220  to specify various types of operational parameters and other relevant information for use by configuration logic  212  of display controller  128 . In the  FIG. 4  embodiment, controller registers  220  may utilize configuration registers  412  for storing various types of information relating to the configuration of display controller  128  and/or display  134  of electronic device  110 . For example, configuration registers  220  may specify a display type, a display size, a display frame rate, and various display timing parameters. In the  FIG. 4  embodiment, controller registers  220  may utilize transfer registers  416  for storing various types of information relating to transfer operations for providing pixel data from video memory  216  ( FIG. 3 ) to display  134  of electronic device  110 .  
      In the  FIG. 4  embodiment, controller registers  220  may utilize miscellaneous registers  420  for effectively storing any desired type of information or data for use by display controller  128 . In the  FIG. 4  embodiment, controller logic  212  ( FIG. 2 ) or other appropriate entity may set a transfer flag  424  to indicate that certain conditions for triggering a partial transfer of image data to display  134  have been met. In response, automatic transfer module  228  ( FIG. 2 ) automatically performs a corresponding automatic transfer procedure, as discussed below in conjunction with  FIGS. 7 and 8 .  
      Referring now to  FIG. 5 , a block diagram for one embodiment of the  FIG. 1  display  134  is shown, in accordance with the present invention. In the  FIG. 5  embodiment, display  134  includes, but is not limited to, a display memory  512 , display logic  514 , display registers  516 , timing logic  520 , and one or more screen(s)  524 . In alternate embodiments, display  134  may include elements and functionalities in addition to, or instead of, certain of the elements and functionalities discussed in conjunction with the  FIG. 5  embodiment.  
      In the  FIG. 5  embodiment, display  134  is implemented as a random-access-memory based liquid-crystal display panel (RAM-based LCD panel). However, in alternate embodiments, display  134  may be implemented by utilizing any type of appropriate display technologies or configurations. In the  FIG. 5  embodiment, display controller  128  provides various types of display information to display registers  516  via display bus  142 . Display registers  516  may then utilize the received display information for effectively controlling timing logic  520 . In the  FIG. 5  embodiment, display logic  514  manages and coordinates data transfer and display functions for display  134 .  
      In the  FIG. 5  embodiment, automatic transfer module  228  ( FIG. 2 ) performs an automatic transfer configuration procedure to set up an automatic transfer operation with display  134 . Automatic transfer module  228  of display controller  128  then automatically provides image data from video memory  216  ( FIG. 2 ) to display memory  512  via display bus  142 . In the  FIG. 5  embodiment, display memory  512  is typically implemented as random-access memory (RAM). However, in various other embodiments, any effective types or configurations of memory devices may be utilized to implement display memory  512 . In the  FIG. 5  embodiment, display memory  512  then advantageously provides the image data received from display controller  128  to one or more screens  524  via timing logic  520  for viewing by a device user of electronic device  10 . Various techniques for efficiently transferring image data to display  134  are further discussed below in conjunction with  FIGS. 6 through 8 .  
      Referring now to  FIG. 6 , a block diagram illustrating a transfer rectangle updating procedure is shown, in accordance with one embodiment of the present invention. The  FIG. 6  embodiment is provided for purposes of illustration, and in alternate embodiments, the present invention may update transfer rectangles using procedures that include elements and functionalities in addition to, or instead of, certain of the elements and functionalities discussed in conjunction with the  FIG. 6  embodiment.  
      In the  FIG. 6  embodiment, a rectangle module  224  ( FIG. 2 ) monitors on-screen data  312  in video memory  216  ( FIG. 3 ) for image-data write operations during which CPU  122  or other appropriate entities transfer image data into on-screen data  312 . Whenever such image-data write operations occur, rectangle module  224  performs a rectangle update procedure to ensure that a current updated transfer rectangle includes all pixels corresponding to the written image data. Therefore, whenever a transfer operation is initiated by display controller  128  for transferring image data from video memory  216  to display  134 , only image data from the current updated transfer rectangle need be transferred, instead of inefficiently transferring an entire frame of image data during each transfer operation.  
      The utilization of the foregoing transfer rectangles to perform transfer operations to display  134  thus conserves substantial system resources by reducing the amount of data involved. Furthermore, a significant reduction in operating power consumption results because only changed pixels in on-screen data  312 ′ need to be refreshed instead of repeatedly refreshing entire frames of pixels on display  134 .  
      The size and location of a particular transfer rectangle is typically defined by utilizing the following notation: 
 
[(X 1 , y l ), (x 2 , y 2 )]
 
 where (x 1 , y 1 ) are the pixel coordinates of the top left pixel from the corresponding transfer rectangle, and where (x 2 , y 2 ) are the bottom right coordinates of that same transfer rectangle. Each of the pixel coordinates of a transfer rectangle maps to a corresponding location in on-screen data  312  of video memory  216  ( FIG. 3 ). 
 
      In the  FIG. 6  example, rectangle module  224  has initially formed an initial rectangle  612  after pixel  616  and pixel  620  were written into on-screen data  312  to replace the previously existing image data at those locations. Subsequently, after rectangle module  224  detects that pixel  630  and pixel  634  have been written into on-screen data  312 , then rectangle module  224  advantageously creates an updated rectangle  624  to include the newly added image data.  
      Therefore, in certain embodiments, if a transfer rectangle is defined by the expression [(x 1 , y 1 ), (x 2 , y 2 )], and if rectangle module  224  detects that a new pixel (X,Y) has been written into on-screen data  312 , then rectangle module  224  may perform four tests for potentially updating the transfer rectangle. Rectangle module  224  determines whether “X” is less than “x 1 ”, and if so, then updates “x 1 ” to equal “X”. Rectangle module  224  also determines whether “X” is greater than “x 2 ”, and if so, then updates “x 2 ” to equal “X”. Rectangle module  224  further determines whether “Y” is less than “y 1 ”, and if so, then updates “y 1 ” to equal “Y”. Finally, rectangle module  224  determines whether “Y” is greater than “y 2 ”, and if so, then updates “y 2 ” to equal “Y”. The utilization of transfer rectangles for automatically performing partial transfer operations are further discussed below in conjunction with  FIG. 7 .  
      Referring now to  FIG. 7 , a flowchart of method steps for performing automatic transfer operations is shown, in accordance with one embodiment of the present invention. The  FIG. 7  flowchart is presented for purposes of illustration, and in alternate embodiments, the present invention may utilize steps and sequences in addition to, or instead of, certain of the steps and sequences discussed in conjunction with the  FIG. 7  embodiment.  
      In the  FIG. 7  embodiment, in step  712 , automatic transfer module (ATM)  228  initially monitors a transfer flag  424  ( FIG. 4 ) in control registers  220  of display controller  128 . In step  716 , ATM  228  determines whether the transfer flag  424  has been set to indicate that a trigger event has occurred for initiating a partial transfer operation to send a transfer rectangle of image data to display  134  ( FIG. 1 ). In the  FIG. 7  embodiment, transfer flag  424  may be initiated by controller logic  212  of display controller  128  in response to any appropriate stimulus or event. For example, a transfer clock may trigger controller logic  212  to set transfer flag  424  after a pre-determined transfer interval has been exceeded, or controller logic  212  may detect that a total written pixel value from a write operation counter has exceeded a pre-determined write-operation pixel threshold.  
      In step  716 , if ATM  228  detects that transfer flag  424  has been set, then in step  720 , ATM  228  performs an automatic transfer configuration procedure with display  134  to set up a corresponding automatic transfer operation of a current transfer rectangle in video memory  216  ( FIG. 3 ). Then in step  724 , ATM  228  advantageously performs the automatic transfer operation by sending image data of the current transfer rectangle from on-screen data  312  of video memory  216  to display  134  via display bus  142  ( FIG. 5 ).  
      In response, in step  728 , display logic  514  of display  134  stores the transferred image data from the current transfer rectangle into an appropriate location in display memory  512 , as specified by ATM  228  during the foregoing automatic transfer configuration procedure. Finally, in step  732 , display  134  may advantageously display image data from display memory  512  on one or more screens  524  of display  134  for viewing by a device user. The  FIG. 7  process may then terminate.  
      In accordance with the present invention, ATM  228  therefore automatically and transparently manages automatic partial transfer operations to efficiently provide transfer rectangles of image data to display  134 . CPU  122  ( FIG. 1 ) and various host device software programs are therefore not required to participate in managing the automatic transfer operations, and may be efficiently utilized to perform other required processing tasks for electronic device  110 .  
      Referring now to  FIG. 8 , a flowchart of method steps for performing an automatic transfer configuration procedure is shown, in accordance with one embodiment of the present invention. The  FIG. 8  flowchart presents one embodiment for the automatic transfer configuration procedure discussed above in conjunction with step  720  of  FIG. 7 . The  FIG. 8  flowchart is presented for purposes of illustration, and in alternate embodiments, the present invention may utilize steps and sequences in addition to, or instead of, certain of the steps and sequences discussed in conjunction with the  FIG. 8  embodiment.  
      In the  FIG. 8  embodiment, in step  812 , automatic transfer module (ATM)  228  initially enters an automatic transfer configuration mode by utilizing any effective means. For example, in certain embodiments, ATM  228  may enter the automatic transfer configuration mode when a transfer flag  424  is set, as discussed above in conjunction with  FIG. 7 . Then in step  816 , ATM  228  sends top-left transfer rectangle coordinates corresponding to a current transfer rectangle to display registers  516  of display  134 . Next, in step  820 , ATM  228  sends bottom-right transfer rectangle coordinates corresponding to the current transfer rectangle to display registers  516  of display  134 .  
      In step  824 , ATM  228  sends a receive data command to display logic  514  of display  134 . In response, in step  828 , display logic  514  acknowledges the foregoing receive data command from ATM  228  by utilizing a handshaking protocol. Finally, in step  832 , display logic  514  causes display  134  to enter a receive data mode for participating in the automatic transfer operation initiated by ATM  228 . The  FIG. 8  process may then terminate. The present invention therefore provides an improved system and method efficiently performing automatic partial transfers of image data.  
      The invention has been explained above with reference to certain preferred embodiments. Other embodiments will be apparent to those skilled in the art in light of this disclosure. For example, the present invention may be implemented using certain configurations and techniques other than those described in the embodiments above. Additionally, the present invention may effectively be used in conjunction with systems other than those described above as the preferred embodiments. Therefore, these and other variations upon the foregoing embodiments are intended to be covered by the present invention, which is limited only by the appended claims.