1. Field of Art
The disclosure generally relates to the field of electronic paper displays. More particularly, the invention relates to systems and methods for displaying a page transition on electronic paper displays.
2. Description of the Related Art
Several technologies have been introduced recently that provide some of the properties of paper in a display that can be updated electronically. Some of the desirable properties of paper that this type of display tries to achieve include: low power consumption, flexibility, wide viewing angle, low cost, light weight, high resolution, high contrast and readability indoors and outdoors. Because these types of displays attempt to mimic the characteristics of paper, they are referred to as electronic paper displays (EPDs) in this application. Other names for this type of display include: paper-like displays, zero power displays, e-paper and bi-stable displays.
A comparison of EPDs to Cathode Ray Tube (CRT) displays or Liquid Crystal Displays (LCDs) reveal that in general, EPDs require less power and have higher spatial resolution; but have the disadvantages of slower update rates, less accurate color control, and lower color resolution. Many electronic paper displays were previously only grayscale devices. Color EPDs are becoming available although often through the addition of a color filter, which tends to reduce the spatial resolution and the contrast.
The key feature that distinguishes EPDs from LCDs or CRTs is that EPDs can maintain an image without using power. They are sometimes referred to as “bi-stable” because black or white pixels can be displayed continuously and power is only needed to change from one state to another. However, some devices are stable at multiple states and thus support multiple colors without power consumption. EPDs are also typically reflective rather than transmissive. Thus they are able to use ambient light rather than requiring a lighting source in the device. Various technologies have been developed to produce EPDs. Depending on the technology used, such displays are sometimes called electrophoretic displays, electro-wetting displays, cholesteric LCD (Ch-LC). Techniques have also been developed to produce EPDs by embedding organic transistors into flexible substrates.
The luminance or color of a pixel in a traditional LCD display depends on the voltage currently being applied at the given point, with a given voltage reliably corresponding to a specific luminance. The luminance or color of a pixel in a bistable display, on the other hand, typically changes as voltage is applied. For example, in some bistable displays applying a negative voltage to a pixel makes it lighter (higher luminance) and a positive voltage makes it darker. The higher the voltage and the longer or more times that voltage is applied, the larger the change in luminance. This has two implications for driving such displays. First, electronic paper displays are typically controlled by applying a sequence of voltages to a pixel instead of just a single value like a typical LCD. These sequences of voltages are sometimes called waveforms. The second implication is that the control signals used to drive a pixel depend not only on the optical state the pixel is being driven to, but also on the optical state it is being driven from. Depending on the display technology, other factors may also need to be taken into consideration when choosing the waveform to drive a pixel to a desired color. Such factors can include the temperature of the display, optical state of the pixel prior to the current optical state, and dwell time (i.e. the time since the pixel was last driven). Failure to take these factors into account can lead to faint remnants of images that have supposedly been erased still being visible, a visual artifact known as ghosting. Some displays also have additional requirements that must be met to avoid damaging the display, such as the requirement that waveforms be DC balanced.
To handle these issues, some controllers for driving the displays are configured like an indexed color-mapped display. The framebuffer of these electronic paper displays includes an index to the waveform used to update that pixel instead of the waveform itself. Whenever the optical state of a pixel is to be changed, the index of the appropriate waveform is chosen based on at least some of the factors listed above, and the pixel's location in the frame buffer is set to that index. Some displays will encode some factors (such as a pixel's current and desired optical state) in the waveform index and then choose which waveform table to use when updating a set of pixels based on other factors (such as temperature).
One problem with the above technique is that it typically takes longer to compute which waveform to apply to a pixel than it does to perform the corresponding operation on a conventional CRT or LCD display. This can lead to a considerable latency between when an application requests a new image be displayed and when the image actually appears. For example, an EPD using a prior art controller can take on the order of half a second to calculate new pixel values for a 1200×825 display. The latency can be improved with faster or additional hardware, but only with increased cost and power consumption. To some extent the latency can also be reduced by simplifying the calculation, for example by ignoring secondary factors such as dwell time and pixel history (prior displayed colors for the pixel) prior to the current optical state, but this can result in increased ghosting.
While current update times are generally sufficient for the page turning needed by electronic books, they are problematic for interactive applications that emulate page transitions or page flipping at higher speeds. A user may tolerate waiting for a second or two for transitioning between two pages when the user spends a few minutes reading each page. However, when the user wants to flip through numerous pages successively without spending more than a few seconds on each page such as to find a section, illustration or particular part of a larger document, the transition time of half a second between pages becomes unacceptable.
There have been attempts in the prior art to solve page flipping problem described above in the previous paragraph. While those attempts approximate something like page transitions, they have certain shortcomings. One particular problem is that precise timing is required for the block copying of data such that the copying is ahead of the LCD controller. Managing this timing can be problematic if the processor is under heavy load for other activities. Another problem is that the needed data files for fast page flipping can be very large; for example, just under 1 MB per page for a display that is 1200×827 pixels. Finally, the prior art approaches required a block copy for each page transition. This means that writing about a megabyte to the frame buffer for each page transition, which translates to one megabyte every 80 ms for 12.5 pages per second transition rate. Thus there is a significant burden on computing resources that can be used for other applications.
The present invention includes a page transition file creation system and a method for creating a page transition file for displaying transitions quickly on an electronic paper display. The present invention also includes a page transition display system and a method for displaying page transitions using page transition files.
The page transition file creation system comprises an image buffer feeding module and a page transition block determination module. The page transition file creation system creates one or more page transition files corresponding to an input document for later displaying page transitions in different directions. The image buffer feeding module receives an input document, extracts image blocks representing document pages from the input document, and delivers the image blocks to page transition block determination module. The page transition block determination module converts the received input image blocks into a page transition file and stores the page transition file for later use. More specifically, the page transition block determination module encodes one or more high order color bits from each pixel for a given page. Each transition block in the page transition file covers a set of consecutive pages that overlaps with pages covered by the previous block and the next block to allow the system to render new pages to the display without causing visual artifacts via a method referred to herein as pseudo double buffering.
A page transition file comprises a header and one or more page transition blocks. The header of the page transition file comprises components such as H, CBITS, N, OVERLAP, and Num_Pix and values for these components. In one embodiment, the header includes the page width and height in pixels, and Num_Pix is calculated from these two values. H is the number of document pages represented in each page transition block. CBITS is the number of bits used to represent color of a pixel for a particular page in the page transition file. In an optimized embodiment, there is only one bit, CBITS=1, used to represent color of a pixel. N is the number of pages in the input document, and Num_Pix is the number of pixels in each page of the document. A page transition block represents a transition through H pages and comprises Num_Pix transition pixels, each transition pixel representing varying colors of an image pixel on H consecutive pages of the document. As noted above, each transition block represents a set of consecutive pages that overlaps with pages covered by the previous block and the next block for pseudo double buffering.
The page transition display system receives the page transition file and uses the information in page transition file to display page transitions on physical media. The page transition display system comprises an update controller, a frame buffer, a waveform buffer and a display controller.
The update controller determines the appropriate page transition file comprising the page transition blocks. In one embodiment, the update controller receives from an end user application page a request to flip through a particular document, transition direction, transition speed, CBITS and/or H and then retrieves or receives a page transition file corresponding to the received variable or variables. The update controller selects the appropriate page transition block from the page transition file and stores the selected page transition block in the frame buffer. The update controller also selects the appropriate waveform lookup table and stores a waveform lookup table to the waveform buffer. The update controller comprises a frame buffer controller and a waveform determination module. The frame buffer controller controls when the frame buffer is update and the content for the frame buffer. The waveform determination module determines and transmits to waveform buffer the waveform lookup tables corresponding to the transmitted page transition blocks, page transition speed and page transition direction. The waveform determination module comprises waveforms for transitioning a pixel color on physical media from one color to another.
The display controller uses the received page transition blocks and waveform lookup table to determine waveforms, applies the determined waveform to physical media, and drives the pixel colors on physical media to desired colors.
The disclosed embodiments have other advantages and features which will be more readily apparent from the detailed description, the appended claims and the accompanying figures (or drawings).
FIGS. 8A and 8D-8H are visual representations of the waveform buffer, the frame buffer, the physical media, portions of the page transition file and the state of pseudo double buffering at different times in the process of displaying according to an embodiment of the present invention.
The figures depict various embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.
A system and method for displaying page transitions on electronic paper display are described. The figures (FIGS.) and the following description relate to preferred embodiments by way of illustration only. It should be noted that from the following discussion, alternative embodiments of the structures and methods disclosed herein will be readily recognized as viable alternatives that may be employed without departing from the principles of what is claimed.
Reference will now be made in detail to several embodiments, examples of which are illustrated in the accompanying figures. It is noted that wherever practicable similar or like reference numbers may be used in the figures and may indicate similar or like functionality. The figures depict embodiments of the disclosed system (or method) for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein.
As used herein any reference to “one embodiment,” “an embodiment,” or “some embodiments” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. It should be understood that these terms are not intended as synonyms for each other. For example, some embodiments may be described using the term “connected” to indicate that two or more elements are in direct physical or electrical contact with each other. In another example, some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other. The embodiments are not limited in this context.
Also, some embodiments of the invention may be further divided into logical modules. One of ordinary skill in the art will understand that these modules can be implemented in hardware, firmware, and/or software. In one embodiment, the modules are implemented in form of computer instructions stored in a computer readable medium when executed by a processor cause the processor to implement the functionality of the module. Additionally, one of ordinary skill in the art will recognize that a computer or another machine with instructions to implement the functionality of one or more logical modules is not a general purpose computer. Instead, the machine is adapted to implement the functionality of a particular module. Moreover, the machine embodiment of the invention physically transforms the electrons representing the images in the document from one state to another in order to attain the desired format.
As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
In addition, use of the “a” or “an” are employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the invention. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise.
Device Overview
Figure (FIG.) 1 illustrates a cross-sectional view of a portion of an exemplary electronic paper display 100. The components of the electronic paper display 100 are sandwiched between a top transparent electrode 102 and a bottom backplane 116. The top transparent electrode 102 is a thin layer of transparent material. The top transparent electrode 102 allows for viewing of microcapsules 118 of the electronic paper display 100.
Directly beneath the top transparent electrode 102 is the microcapsule layer 120. In one embodiment, the microcapsule layer 120 includes closely packed microcapsules 118 having a clear fluid 108 and some black particles 112 and white particles 110. In some embodiments, the microcapsule 118 includes positively charged white particles 110 and negatively charged black particles 112. In other embodiments, the microcapsule 118 includes positively charged black particles 112 and negatively charged white particles 110. In yet other embodiments, the microcapsule 118 include colored particles of one polarity and different colored particles of the opposite polarity. In some embodiments, the top transparent electrode 102 includes a transparent conductive material such as indium tin oxide.
Disposed below the microcapsule layer 120 is a lower electrode layer 114. The lower electrode layer 114 is a network of electrodes used to drive the microcapsules 118 to a next optical state. The network of electrodes is connected to display circuitry, which turns the electronic paper display “on” and “off” at specific pixels by applying a voltage to specific electrodes. Applying a positive charge (black electrode 114) to the electrode repels the positively charged black particles 112 to the top of microcapsule 118, while drawing the negatively charged white particles 110 to the bottom and giving the pixel a black appearance. Reversing the voltage has the opposite effect—the negatively charged white particles 112 are forced to the surface, giving the pixel a white appearance. The luminance of a pixel in an EPD changes as voltage is applied. The amount the pixel's luminance changes may depend on both the amount of voltage and the length of time for which it is applied, with zero voltage leaving the pixel's luminance unchanged.
The electrophoretic microcapsules of the layer 120 may be individually or collectively activated to a next optical state, such as black, white or gray. In some embodiments, the next optical state may be any other prescribed color. Each pixel in layer 114 may be associated with one or more microcapsules 118 contained within a microcapsule layer 120. Each microcapsule 118 includes a plurality of tiny particles 110 and 112 that are suspended in a clear fluid 108. In some embodiments, the plurality of tiny particles 110 and 112 are suspended in a clear liquid polymer.
The lower electrode layer 114 is disposed on top of a backplane 116. In one embodiment, the electrode layer 114 is integral with the backplane layer 116. The backplane 116 is a plastic or ceramic backing layer. In other embodiments, the backplane 116 is a metal or glass backing layer. The electrode layer 114 includes an array of addressable pixel electrodes and supporting electronics.
As apparent from
Additionally, the waveform frames can each represent a time period like 20 milliseconds (ms) in one embodiment. Accordingly, the time required to change the pixel color from white 204a to black 204c is six frames or 120 ms. This time is usually acceptable to a reader watching the transition of pixels as the user flips through pages on an electronic paper display. However, it typically takes longer to compute which voltage or waveform to apply to a pixel than it does to perform the corresponding operation on an EPD. This lag can create a delay between transitions which are unacceptable to a reader and can be reduced by using an efficient file format explained below.
File Format with Page Transition Blocks
Header 402 comprises components such as H, CBITS, N, OVERLAP and Num_Pix and values for these components. CBITS is the number of bits used to represent color of a pixel from a single page within a packed transition pixel 306. N is the number of pages in the document represented by page transition file 400. OVERLAP is the number of pages that are duplicated in two sequential transition blocks. Num_Pix is the number of pixels in each page of the document. In one embodiment, the header 402 comprises the page width and page height in number of pixels, and Num_Pix is calculated by multiplying these two values together. In one embodiment, header 402 also comprises one or more of page transition speed and page transition direction supported by the page transition file 400.
The page transition block 404 represents a transition of H document pages. The page transition block 404 comprises Num_Pix packed transition pixels 306, each packed transition pixel 306 represented by H*CBITS bits wherein H groups of CBITS bits represent the varying colors of a pixel in H different document pages. These packed transition pixels 306 are used by the display controller 612 (See
In an alternate embodiment, the first few or last few page transition blocks 404 are padded with dummy pages comprising of white pixels or some other solid color or neutral pattern pixels. The dummy pages are space filers in a page transition block 404 used when a previous page or a next page does not exist in the document but is used in page transition blocks 404 to adhere to the page transition file format. Because the last few pages do not exist in the document, the page transition file creation system 500 (See
Referring now also to
Still referring to
A page transition file creation system 500 creates files in the page transition file format described in
Waveform Look-Up Table
A waveform lookup table comprises waveforms (sequence of voltages applied over time) applied by display controller 612 to drive a pixel on physical media 120 based on an index value stored in the pixel's location in frame buffer 610. In one embodiment, the waveform lookup table is divided into time periods represented by frames and each frame includes a part of the waveform required to drive the pixel. In this embodiment, the waveform lookup table maps a waveform index (represented as a transition pixel) and a frame number to a voltage that should be applied to the pixel represented by a given transition pixel for that frame. Each frame is used for a time period like 20 milliseconds (ms). In one embodiment, frames may be used for varying time periods. The display controller 612 reads a new frame from the lookup table every time period to determine the charge that should be applied.
The example below in
The speed with which pages are flipped is defined in terms of a transition length, which is equal to the number of frames taken by display driver to change the color of a pixel from the optical state of that pixel on one page to the optical state of that pixel on a subsequent page. Specifically, the rate at which images are presented is equal to the reciprocal of the transition length times the duration of a single frame. For example, a frame duration of 20 ms and a transition length of three frames would present pages at a rate of 1/(3*20 ms), or approximately 16.7 page presentations per second (pps).
In the present invention, waveforms are generated from component pieces of the page transition file 400 on the fly. The present invention generates the waveforms on the fly to match the requested page flip speed (number of frames per page), flipped direction, H and CBITS. These waveforms are then written to the waveform buffer 608 so they are aligned to match the page bit positions of the current transition block, with the bit position for the requested start page aligned such that it falls on the frame following the frame currently being updated by display controller 612. The display controller 612 uses the waveform stored in the waveform buffer 608 to apply voltages to the physical media 120. In other methods each index in a waveform table typically represents the waveform required to transition a pixel from one color to another. In the present invention, however, the index actually represents a repeating sequence of transitions through H colors, one color (black or white) for each set of CBITS bits in the waveforms index number. Specifically, each waveform index in a waveform lookup table can be thought of as representing a sequence of H colors, each color represented by CBITS bits (where a waveform index is defined as H times CBITS bits in length). Each waveform index maps to a waveform that represents the cyclic pattern of voltages required to drive a pixel through each of the H colors, wrapping back from the last of the H colors presented back to the first. This pattern of voltages is then repeated for the width of the waveform lookup table. Each transition from one color to the next is allotted the number of frames equal to the transition length defined for the waveform lookup table, and the order in which each color is presented is determined by the flip direction, with forward flipping transitioning to the right through the sequence of colors defined by the waveform index and backwards flipping transitioning to the left.
System Overview
The image buffer feeding module 505 extracts page images from a document and transmits the images to the sliding window image buffer 522 in page transition block determination module 507. Additionally, the image buffer feeding module 505 transmits to sliding window image buffer 522 and creation module 528 in page transition block determination module 507 values for H, CBITS, N and Num_Pix for the document. In one embodiment, the page width and height in pixels is transmitted instead of Num_Pix, and Num_Pix is calculated from these two values.
The page transition block determination module 507 receives images from image buffer feeding module 605 and produces a page transition file 400 comprising header 402 and page transition blocks 404. The page transition block determination module 507 comprises sliding window image buffer 522, a transition block buffer 524, a Pixvalue buffer 526 and creation module 528. These buffers 522, 524, 526 and creation module 528 are communicatively coupled to each other through a communication bus 530. The sliding window image buffer 522 is also communicatively coupled to image buffer feeding module 505. The creation module 528 is also communicatively coupled to image buffer feeding module 505 and storage 512.
The sliding window image buffer 522 is a computer readable storage medium like a hard drive, random access memory, compact drive, a flash memory or a DVD. The sliding window image buffer 522 stores page images received from image buffer feeding module 505. In one embodiment, the sliding window image buffer 522 receives and stores pointers to page images instead of the page images themselves.
The transition block buffer 524 is a computer readable storage medium like a hard drive, random access memory, compact drive, a flash memory or a DVD. The transition block buffer 524 stores a page transition block that is being created by creation module 528.
The Pixvalue buffer 525 is a computer readable storage medium like a hard drive, random access memory, compact drive, a flash memory or a DVD. The Pixvalue buffer 525 stores a packed page transition pixel that is being created by creation module 528.
The creation module 528 creates the page transition file 400 with header 402 and page transition blocks 404. The creation module 528 retrieves page images or pointers to page images from sliding window image buffer 522, creates in Pixvalue buffer 525 packed page transition pixels representing transition of a pixel's color in H page images, and stores the completed transition pixel in transition block buffer 524. The creation module 528 repeats this process for every pixel in a page image to create page transition blocks 404 in transition block buffer 524. After completing a page transition block 404, the creation module 528 stores the page transition block 404 in a page transition file 400 on storage 512. In one embodiment, the creation module 528 creates a plurality of page transition files 400 from the received page images with each of the created page transition files representing page transitions in different directions, at different speeds, or with different values of CBITS, H and/or OVERLAP. The functionality of creation module 528 is also explained below with reference to
Storage 512 is a computer readable storage medium like a hard drive, random access memory, compact drive, or a flash memory. Storage 512 is used by creation module 528 in page transition block determination module 507, in one embodiment, to store page transition blocks 404 in a page transition file 400.
The storage 512 is communicatively coupled to the end user application 604. The storage 512 is a computer readable storage medium like a hard drive, random access memory, compact drive, flash memory or a DVD. The storage 512 stores one or more page transition files 400. In one embodiment, the storage 512 also stores pre-generated waveform lookup tables. In one embodiment, a user of the page transition display system 600 transfers to the storage 512 page transition files 400 from a download location or a computer readable storage medium. In another embodiment, the storage 512 is the same storage as storage 512 of
The end user application 604 receives user input and determines the document, start page from which the page transition starts, page transition speed and page transition direction. In one embodiment, the user also specifies a value for H, CBITS and/or OVERLAP in the end user application or end user application 604 uses values for H, CBITS and/or OVERLAP that best meet the application's requirements, and end user application 604 then retrieves an appropriate transition file that matches the specified values for H, CBITS and OVERLAP. The end user application 604 transmits start page, page transition speed, page transition direction, page transition start stop signal to the update controller 606. The end-user application 604 also sends the page transition file 400 or a reference to it to the update controller 606.
The waveform library 602 is communicatively coupled to the update controller 606. The waveform library 602 stores various pre-generated waveform lookup tables and other waveforms used by the update controller 606. In one embodiment, waveform library 602 stores prototype waveform lookup tables which are then modified by the update controller 606 for the on-the-fly generation of waveform lookup tables. For example, waveform library 602 stores two prototype waveform lookup tables, one for each direction with CBITS=1, H=8 and transition length=1 frame per page transition. The update controller 606 then modifies the lookup table of the appropriate direction to match the desired page transition speed by duplicating each frame's entry the appropriate number of times. This simplifies the process of generating the waveforms to a mere copying operation. In another embodiment, the waveform library 602 stores default waveform lookup tables for commonly used values of H, CBITS, and speed and direction of transition. In another embodiment, the update controller 606 generates the waveform lookup table completely on the fly, and waveform library 602 is not used.
The update controller 606 is communicatively coupled to the waveform library 602, the waveform buffer 608, the frame buffer 610 and the end user application 604. The update controller 606 determines and stores the appropriate page transition block 404 in the frame buffer 610. The update controller 606 also generates a waveform lookup table and stores it in the waveform buffer 608. The update controller 606 also controls the generation and storage of data and the waveform buffer 608 and the frame buffer 610 to ensure that the data is aligned to match the bit positions for pages in the current transition block.
The update controller 606 receives from the end user application 604 a start page, the page transition speed selected by the end user through end user application 604, page transition direction, page transition start stop signal and page transition file 400. From the page transition file header 402 the update controller 606 determines H, CBITS, OVERLAP and Num_Pixels. The page transition start stop signal informs the update controller 606 to enter or exit the page transition mode and start page informs the update controller 606 to start the page transition from page numbered start page. In one embodiment, the end-user application 604 is responsible for insuring that the start page is currently being displayed. In another embodiment, the update controller 606 determines the start page image from the appropriate bits in the appropriate transition block 404 of the page transmission file 400 and transmits the start page image to the frame buffer 610 and the display controller 612 uses prior art methods to display that page. The update controller 606 will be described in more detail below with reference to
In one embodiment, the end user application 604 transmits to the update controller 606 the page transition file 400 or an address of page transition file 400. The update controller 606 then determines part of the above mentioned information from header 402 of page transition file 400. In another embodiment, end user application 604 transmits a document identifier to the update controller 606 and it determines the page transition file 400 associated with the received document. In still another embodiment, the update controller 606 determines a default page transition file 400 corresponding to the received page transition speed, page transition direction, CBITS, OVERLAP or H. In yet another embodiment, the update controller 606 is preconfigured with or determines from a configuration file, the H, OVERLAP, page size and/or CBITS supported by display controller 612. The update controller 606 determines a corresponding page transition file 400 that supports the H, OVERLAP, page size and/or CBITS of display controller 612.
The waveform buffer 608 is communicatively coupled to the update controller 606 and the display controller 612. The waveform buffer 608 receives and stores a waveform lookup table corresponding to the page transition block received in the frame buffer 610. The storage of different waveform lookup tables into the waveform buffer 608 is controlled by the update controller 606. The display controller 612 uses the index provided from the frame buffer 610 to retrieve the appropriate waveform from the waveform buffer 608.
The frame buffer 610 is communicatively coupled to the update controller 606 and the display controller 612. The frame buffer 610 receives and stores page transition blocks received from the update controller 606. The frame buffer 610 provides the page transition blocks in response to request from the display controller 612. In one embodiment, the frame buffer 610 and waveform buffer 608 are portions of random access memory in display controller 612.
The display controller 612 is communicatively coupled to the waveform buffer 608, the frame buffer 610 and the physical media 120. The display controller 612 uses the received page transition blocks, waveform lookup table, and index to lookup waveforms, apply them to physical media 120, and drive the pixel colors on physical media 120 to desired colors. In one embodiment, the display controller 612 reads the transition pixel from a page transition block 404 and uses the value of transition pixel and the current frame number as indexes into the waveform lookup table stored in the waveform buffer to determine the appropriate voltage with which to drive the pixel to desired color in physical media 120.
The physical media 120 is coupled to and controlled by the display controller 612. In one embodiment, and the physical media 120 is the microcapsule layer 120 and has been explained above in reference to
Referring now to
The controller 702 is communicatively coupled to the frame buffer controller 704 and the waveform determination module 706. The controller 702 controls the overall process for receiving information from the end-user application 604, generating the waveform table, and storing page transition blocks 404 in a frame buffer 610. In particular, the controller 702 receives the information from the end-user application 604, cooperates with the frame buffer controller 704 to store pixel data into the frame buffer 610 and provide timing information, and cooperates with the waveform determination module 706 to generate and store waveform tables in the waveform buffer 608 at different times. In other words, the controller 702 is responsible for receiving control signals from the end-user allocation 604, extracting the component information from the header 402 of the page transition file 400 and generating control signals and data that are provided to the frame buffer controller 704 and the waveform determination module 706. One important aspect of the controller 702 is that it ensures that the waveform table is aligned to match the bit position of the current page transition block 404 in the frame buffer 610. It should also be noted that the controller 702 has a variety of other functions for loading data into the waveform buffer 608 and the frame buffer 610 and controlling the display controller for the presentation of pixel data in a conventional manner. The operation of the controller 702 is described in more detail below with reference to
The frame buffer controller 704 is coupled to the controller 702 to receive signals related to the storage of data in the frame buffer 610 and the timing of the storage of data in the frame buffer 610. As shown in
The waveform determination module 706 is communicatively coupled to the controller 702 and the waveform buffer 608. The waveform determination module 706 generates a waveform table and stores it in the waveform buffer 608. The waveform determination module 706 generates the waveform table on the fly. The waveform determination module 706 determines and transmits to waveform buffer 608 a waveform lookup table corresponding to one or more of speed, direction, start page, and values of H, OVERLAP and CBITS. The waveform table is generated to match the page transition speed and direction. The waveform determination module 706 uses one or more from the group of page transition speed, page transition direction, CBITS and H to determine the appropriate waveform lookup table that corresponds to the transmitted page transition block 404. The waveform determination module 706 uses one or more from the group of current frame, start page, CBITS, H and OVERLAP to write the waveform lookup table to the waveform buffer 608 aligned such that the portion of the repeating waveform responsible for transitioning from start page to the next page in the desired direction starts on the frame following the current frame. The start page, page transition speed, page transition direction, H, current frame, CBITS, OVERLAP and page transition start stop signal are received from the end-user application 604 or page transition file header 402 via the controller 702. In one embodiment, the waveform determination module 706 determines the need for a new waveform and then retrieves it from the waveform library 602. When the page transition start stop signal is turned on, the waveform determination module 706 selects and transmits a pre-defined waveform lookup table to waveform buffer 608.
Methods
The method then sets 906 the transition block number (TBN) equal to zero. The method also sets 906 a variable, PageNum, equal to 0. This indicates that additional pages of the document that need to be processed would begin with a page number equal to the value of the variable PageNum (with the page number of the first page in the document designated as page zero). Next, in step 908, the image buffer feeding module 505 copies pages to the sliding window image buffer 522. In particular, pages PageNum to PageNum+H−1 are copied to window W. For example, where PageNum is zero and H=8, this copies the first eight pages into the window W. If fewer than H pages remain in the document, all remaining pages are copied into W and any remaining slots in W after those pages are left empty. Next, the process creates 910 a transition block 404 from original document pages stored in window W. The process for creating a transition block 404 will be described in more detail below with reference to
Referring now to
If in step 1010 the method determined that variable h is equal to the variable H, then the packed transitional pixel has been created and the Pixvalue is appended 1018 to the page transition block 404. The method continues by incrementing 1020 the PixLoopCounter by one. Next method determines 1022 whether all the pixels for the pages have been processed. In particular, the method determines 1022 whether the value of the variable PixLoopCounter is equal to the value of the variable Num_Pix. If not, there are additional pixels for the pages that need to be processed and the method returns to step 1006 to create the next packed transition pixel of the page. If so, the page transition block 404 is complete and the method ends.
Referring now to
The method 910b begins by accessing 1002 the window and setting 1004 the variable PixLoopCounter to zero, setting 1006 Pixvalue to 0 and setting 1008 h to 0 as has been described above. The method then performs the step of determining 1010 whether the packed transition pixel is complete and generating bits of the packed transition pixel in steps 1012 to 1016 as has been described above. If the method determines 1010 that the packed pixel is complete, the method then transitions to step 1017. In step 1017, the method performs a circular bitwise rotate of the variable Pixvalue to the left by TBN*CBITS*OVERLAP. This produces the ordering of bits necessary for pseudo double buffering that has been described above with reference to
Referring now to
Referring now to
Referring now to
Referring now to FIGS. 8A and 8D-8H an example of drawing the characters “RICOH[space]CRC[space]” on successive pages using the above described system and method will be described. FIGS. 8A and 8D-8H show visual representations of the waveform buffer 608, the frame buffer 610, the physical media 120, and portions of the page transition file 400 at different times in the process of displaying according to an embodiment of the present invention. The figures also show a copy of pseudo double buffering table 410 shown in
Comparing
Number | Name | Date | Kind |
---|---|---|---|
5761683 | Logan et al. | Jun 1998 | A |
6275920 | Abercrombie et al. | Aug 2001 | B1 |
6943773 | Wong et al. | Sep 2005 | B2 |
7012600 | Zehner et al. | Mar 2006 | B2 |
7119772 | Amundson et al. | Oct 2006 | B2 |
20030061417 | Craddock et al. | Mar 2003 | A1 |
20070085819 | Zhou et al. | Apr 2007 | A1 |
20070177208 | McCall et al. | Aug 2007 | A1 |
20080291129 | Harris et al. | Nov 2008 | A1 |
20080309636 | Feng et al. | Dec 2008 | A1 |
20080309648 | Erol et al. | Dec 2008 | A1 |
20080309674 | Barrus et al. | Dec 2008 | A1 |
20090219264 | Erol et al. | Sep 2009 | A1 |
Number | Date | Country |
---|---|---|
2005101362 | Oct 2005 | WO |
Number | Date | Country | |
---|---|---|---|
20110080418 A1 | Apr 2011 | US |