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.
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 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.
A page transition file comprises a header and a plurality of page transition blocks. The header of the page transition file comprises components such as H, CBITS, N and Num_Pix and value for these components. 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. 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−2 previous pages, current page, and next page. A page transition block comprises Num_Pix transition pixels, each transition pixel representing varying colors of an image pixel on H consecutive pages of the document.
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 plurality of page transition files also have different H and CBITS values.
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 a page transition block feeding module, a waveform lookup table selection module and a display controller.
The page transition block feeding module determines the appropriate page transition file comprising the page transition blocks and transmits the determined page transition blocks to display controller. In one embodiment, the page transition block feeding module determines the H and CBITS supported by the display controller and the page transition block feeding module determines the page transition file that supports the corresponding H and CBITS. In another embodiment, the page transition block feeding module receives from an end user application page transition direction and/or H. The page transition block feeding module selects a page transition file corresponding to the received variable or variables and transmits the appropriate page transition block from the selected file to display controller.
The waveform lookup table selection module determines and transmits to display controller waveform lookup tables corresponding to the transmitted page transition blocks, page transition speed and page transition direction. The waveform lookup table comprises waveforms for transitioning a pixel color on physical media from one color to another.
In one embodiment, the waveform lookup table selection module receives from an end user application the page transition speed, page transition direction, and H. The waveform lookup table selection module selects a corresponding waveform lookup table based on one or more of the received variables. In another embodiment, the waveform lookup table receives from page transition block feeding module information about the selected page transition file and the waveform lookup table selection module selects a corresponding waveform lookup table. The waveform lookup table selection module transmits the selected waveform lookup table to display controller.
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).
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.
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 negative charge to the electrode repels the negatively charged particles 112 to the top of microcapsule 118, forcing the positively charged white particles 110 to the bottom and giving the pixel a black appearance. Reversing the voltage has the opposite effect—the positively 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 is unacceptable to a reader and can be reduced by using an efficient file format explained below.
File Format with Page Transition Blocks and Waveform Lookup Table
Header 402 comprises components such as H, CBITS, N 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 transition pixel. N is the number of pages in the document represented by page transition file 400. Num_Pix is the number of pixels in each page of the document. 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.
Page Transition block 404 represents a transition of H document pages. Pi represents page I in the document, with the first page of the document represented as P0, the second as P1, etc. The page transition block 404 comprises Num_Pix transition pixels, each transition pixel represented by H*CBITS bits wherein H groups of CBITS bits represent the varying colors of a pixel in H different document pages. These transition pixels are used by the display controller 712 (See
In one embodiment, the first few and last few page transition blocks 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. For example,
The current value 452a and next value 452b together represent a change in the color of a pixel from a current value to a next value. In one embodiment, this change in color is represented by a single delta value that comprises the difference between the previous color value and next color value. One of ordinary skill in the art will understand that there are multiple ways of representing the difference in current color and next color.
A page transition file creation system 600 creates files in the page transition file format described in
Waveform lookup tables 500 comprise waveforms (sequence of voltages applied over time) applied by display controller 712 to drive a pixel on physical media 120 from one color to another. In one embodiment, the waveform lookup table 500 is divided into time periods represented by frames and each frame includes a part of the waveform required to drive the pixel from one color to another. In this embodiment, the waveform lookup table 500 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.
The example below in
The disclosed file format supports different predefined waveform lookup tables for different transition lengths (i.e. number of frames taken by display driver to change the color of a pixel from previous state to next state), direction of page transition, values for H and CBITS for a particular page transition file, and amount of pixel history to take into account when determining a waveform to apply.
The boxes in frames 502a-n represent a charge, i.e. a part of the waveform, which needs to be applied to change the pixel from a previous color to a next color. For example, to change a pixel from previous color F to next color A, a positive charge is required in the first frame according to frame 502a. Positive voltage (+15V) and Negative voltage (−15V), and zero voltage of waveforms 232a-c in
Each frame 502a-n is used for a time period like 20 milliseconds (ms). In one embodiment, frames 502a-n may be used for varying time periods. For example, frame 502a can be used for 10 ms and frame 502b can be used for 20 ms. The display controller 712 reads a new frame from the lookup table 500 every time period to determine the charge that should be applied to a given pixel to transform the pixel from one level of gray to another level. Accordingly, to change a pixel from previous color F to a next color A, a positive charge of 15 volts is applied for 2 frames (frame 0502a and frame 1502b). The third frame 502c displays that no charge is required for frame 2 to change the pixel color to color A. The display controller 712 therefore reads these frames and applies to a pixel on physical media 120 a positive charge of 15 volts for two time periods (one time period each for frame 0502a and frame 1605b) to change previous color F to next color A.
The n number of frames in a waveform lookup table 500 is related to the frame rate of the image group being displayed. For example, an image group with a frame rate of 16.6 frames per second (fps) implies that the transition between one image to another would take approximately 1/16s or 60 ms. Assuming each lookup frame in the lookup table 500 represents 20 ms time period, the lookup table 500 for a 16.6 fps image group would have three frames 502a-c with charge values to change a pixel from one color to another.
In one embodiment, reverse lookup frames 508a-n include the same values as forward look-up frames 506a-n but the axes are flipped for frames 508a-n. The previous axis of frames 506a-n correspond to next axis of frames 508a-n and next axis of frames 506a-n correspond to the previous axis of frames 508a-n. The reverse lookup frames 508a-n therefore include voltage values that are axial flips of corresponding voltage values in lookup frames 506a-n.
In another embodiment, the reverse lookup frames 508a-n include charge values that are polar opposites of the corresponding charge values in lookup frames 506a-n. For example, if 508a has a +15V value in row A column F, frame 506a will have a −15V value in row A column F.
In one embodiment, an index in forward lookup table 570 points to the same waveform as an index that is sequentially flipped in the reverse lookup table 580. Accordingly, the index comprising Pi−2, Pi−1, and Pi in this particular order in forward lookup table 570 points to the same waveform as index comprising Pi, Pi−1 and Pi−2 in reverse waveform lookup table 580. For example, to change a pixel color using a transition pixel in forward direction that has a previous color 01, a current color 01 and a next color 10, the waveform is indexed by 010110 and comprises a frame of negative charge followed by three frames of positive charge. The same waveform is also used to change a pixel color in reverse direction that has a previous color 10, current color 01, and next color 01.
The image buffer feeding module 605 extracts page images from a document and transmits the images to the sliding window image buffer 622 in page transition block determination module 607. Additionally, the image buffer feeding module 605 transmits to sliding window image buffer 622 and creation module 628 in page transition block determination module 607 values for H, CBITS, N and Num_Pix for the document.
The page transition block determination module 607 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 607 comprises sliding window image buffer 622, a transition block buffer 624, a pixvalue buffer 626 and creation module 628. These buffers 622, 624, 626 and creation module 628 are communicatively coupled to each other through a communication bus. The sliding window image buffer 622 is also communicatively coupled to image buffer feeding module 605. Creation module 628 is also communicatively coupled to image buffer feeding module 605 and storage 612.
The sliding window image buffer 622 is a computer readable storage medium like a hard drive, random access memory, compact drive, or a DVD. The sliding window image buffer 622 stores page images received from image buffer feeding module 605. In one embodiment, the sliding window image buffer 622 receives and stores pointers to page images instead of the page images themselves.
The transition block buffer 624 is a computer readable storage medium like a hard drive, random access memory, compact drive, or a DVD. The transition block buffer 624 stores a page transition block that is being created by creation module 628.
The pixvalue buffer 626 is a computer readable storage medium like a hard drive, random access memory, compact drive, or a flash memory. The pixvalue buffer 626 stores a page transition pixel that is being created by creation module 628.
Creation module 628 creates the page transition file 400 with header 402 and page transition blocks 404. Creation module 628 retrieves page images or pointers to page images from sliding window image buffer 622, creates in pixvalue buffer 626 page transition pixels representing transition of a pixel's color in H page images, and stores the completed transition pixel in transition block buffer 624. Creation module 628 repeats this process for every pixel in a page image to create page transition blocks 404 in transition block buffer 634. After completing a page transition block 404, creation module 628 stores the page transition block 404 in a page transition file 400 on storage 612. In one embodiment, creation module 628 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 or at different speeds. The functionality of creation module 628 is also explained in
Storage 612 is a computer readable storage medium like a hard drive, random access memory, compact drive, or a flash memory. Storage 612 is used by creation module 628 in page transition block determination module 607, in one embodiment, to store page transition blocks 404 in a page transition file 400.
Storage 706 is a computer readable storage medium like a hard drive, random access memory, compact drive, flash memory, or a DVD. Storage 706 stores page transition file 400 and waveform lookup tables 500. In one embodiment, a user of page transition file display system 700 transfers to storage 706 page transition files 400 and waveform lookup tables 500 from a download location or a computer readable storage medium. In another embodiment, storage 706 is the same storage as storage 612 and the creation module 628 stores page transition files 400 in storage 706.
End user application 708 receives user input and determines the 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 in the end user application or end user application 708 uses a default value for H. The end user application 708 transmits start page, page transition speed, page transition direction, page transition start_stop signal, and H to page transition block feeding module 704 and waveform lookup table selection module 710.
Display frame clock 702 transmits a clock signal that synchronizes page transition block feeding module 704, waveform lookup table selection module 710 and display controller 712. For example, the page transition block feeding module 704 is configured to transmit a page transition block 404 every n number of frames because the display controller 712 takes n number of frames to drive the pixel color from a previous value to desired value after receiving the desired value. Similarly, the waveform lookup table selection module 710 is configured to transmit a new waveform lookup table, if required, corresponding to the number of pages that have been shown at a given speed in a given direction, to coincide with the display of a new page transition block 404 after n number of frames. The page transition block feeding module 704 and waveform lookup selection module 710 use the clock signal from display frame clock 702 to determine the right time when a new page transition block 404 or waveform lookup table 500 should be transmitted.
Page transition block feeding module 704 determines and transmits the appropriate page transition block 404 to display controller 712. The page transition block feeding module 704 receives from end user application 708 a start page, the page transition speed selected by the end user through end user application 708, page transition direction, H, and page transition start_stop signal. The page transition start_stop signal informs the page transition block feeding module 704 to enter or exit the page transition mode and start page informs the page transition block feeding module 704 to start the page transition from page numbered start page. In one embodiment, the end-user application is responsible for insuring that the start page is currently being displayed. In another embodiment, the page transition block feeding module 704 transmits the start page to display frame buffer 722 of display controller 712 and the display controller 712 uses prior art methods to display that page.
In one embodiment, the end user application 708 transmits to page transition block feeding module 704 the page transition file 400 or an address of page transition file 400. The page transition block feeding module 704 then determines part of the above mentioned information from header 402 of page transition file 400.
In another embodiment, end user application 708 transmits a document identifier to page transition block feeding module 704 and page transition block feeding module 704 determines the page transition file 400 associated with the received document.
In one embodiment, the page transition block feeding module 704 determines the page transition file 400 corresponding to the received page transition speed, page transition direction or H.
In yet another embodiment, the page transition block feeding module 704 is preconfigured with or determines from a configuration file the H and CBITS supported by display controller 712. The page transition block feeding module 704 determines a corresponding page transition file 400 that supports the H and CBITS of display controller 712.
Regardless of how the page transition block feeding module 704 determines the appropriate page transition file 400, the page transition block feeding module 704 determines the appropriate page transition block 400 using start page and one or more from the group of page transition speed, page transition direction and H. The page transition block feeding module 704 transmits the determined page transition block 404 to display controller 712.
In one embodiment, page transition block feeding module 704 also transmits an index length for page transition block 404 to display controller 712. Index length equals H times CBITS and informs the display controller 712 about the length of transition pixel in page transition blocks 404. In another embodiment, display controller 712 is preconfigured with an index length and the page transition block feeding module 712 transmits a page transition block 404 that corresponds to the index length supported by display controller 712.
The waveform lookup table selection module 710 determines and transmits to waveform buffer 724 a waveform lookup table 500 corresponding to one or more of speed, direction, values of H and CBITS, and number of page transition blocks that have been seen since page flipping was started for the current speed and direction. The waveform lookup table selection module 710 receives from end user application 708 start page, page transition speed, page transition direction, H, and page transition start_stop signal. In one embodiment, the end user application 708 transmits to waveform lookup table selection module 710 page transition file 400 or an address of page transition file 400. The waveform lookup table selection module 710 then determines part of the above mentioned information from header 402 of page transition file 400.
In another embodiment, the page transition file 400 is determined by page transition block determination module 704 and page transition block determination module 704 transmits to waveform lookup table selection module 710 the page transition file 400 or an address of page transition file 400.
The waveform lookup table selection module 710 uses one or more from the group of page transition speed, page transition direction and H to determine the appropriate waveform lookup table 500 that corresponds to the transmitted page transition block 404. For example, the waveform lookup table selection module 710 selects one waveform lookup table 500 for displaying five page transitions in a second and a different waveform lookup table 500 for displaying ten page transitions in a second.
When the page transition start stop signal is turned on, the waveform lookup table selection module 710 selects and transmits a pre-defined waveform lookup table 500 to waveform buffer 724. This waveform lookup table 500 is selected based on the received page transition speed and page transition direction. Because this is the first page transition performed at the page transition speed, the selected waveform lookup table will account for the current and next color for a pixel and ignore any prior history encoded in a transition pixel. As history is accumulated, waveform lookup table selection module 710 determines and transmits different waveform tables that account for the additional history. Eventually, waveform lookup table selection module 710 transmits the waveform lookup table that accounts for as much history as encoded in the page transition block 404.
Display controller 712 uses the received page transition blocks, waveform lookup table, and index length 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 712 reads the transition pixel from a page transition block 404 and uses the value of transition pixel as an index into the waveform lookup table 500 to determine the appropriate waveform. The display controller 712 then applies the determined waveform to physical media 120 and drives the pixel color to desired color.
In one embodiment, display controller 712 is pre-configured with an index length and display controller 712 does not receive an index length. The page transition block determination module 704 in this embodiment determines the index length supported by display controller 712 and transmits page transition blocks 404 supporting that index length.
Display controller 712 comprises display frame buffer 722 and waveform buffer 724. In one embodiment, the display frame buffer 722 and waveform buffer 724 are portions of random access memory in display controller 712. Display frame buffer 722 is communicatively coupled to page transition block feeding module 704 and receives page transition blocks 400 from page transition block feeding module 704.
Waveform buffer 724 is communicatively coupled to waveform lookup table selection module 710 and receives a waveform lookup table 500 corresponding to the page transition block 400 received in display frame buffer 722.
Physical media 120 is the microcapsule layer 120 and has been explained above in reference to
Next, creation module 628 initializes 806 a counter variable i to zero and determines 808 if H is greater than 2. If yes, creation module 628 creates 810 dummy pages P2−H to P-1 and PN to PN+H/−3 wherein Pn represents page n in the document and the first page in the document is page 0. Otherwise, creation module 628 skips step 810 and receives 812 the first page P0 of the document from image buffer feeding module 605.
Creation module 628 then initializes 814 sliding window image buffer 622 and creates a sliding window W with consecutive pages from P2−H to P0. In one embodiment, the sliding window W includes data representing pages P2−H to P0. In another embodiment, the sliding window W includes pointers to the data representing pages P2−H to P0. When the sliding window W includes pointers, creation module 628 uses these pointers to access the data representing pages P2−H to P0.
After initialization of sliding window W, creation module 628 receives 816 page Pi+1 and appends 818 the received page to the end of the sliding window W. Again, creation module 628 can also append the sliding window W with received pointer to page Pi+1 if creation module 628 receives pointer to the data representing the page instead of the page itself. Next, creation module 628 creates 820 a page transition blocki with the current pages in sliding window W. The method for creating a page transition blocki is described below with reference to
Creation module 628 then appends 821 the created page transition blocki to page transition file 400 and determines 822 if i is smaller than N−2. If not, the transition file 400 has been created, the file 400 comprises header 402 and the desired page transition blocks 404, and the method of file creation ends.
If i is smaller than N−2, the creation module 628 continues creating and appending additional page transition blocks 404 to page transition file 400. Creation module 628 removes 824 the leftmost page Pi+2−H from sliding window W, increments 826 i by one, receives 816 page Pi+1, and appends 818 page Pi+1 to the end of sliding window W. The creation module 628 then repeats steps 820-826 and steps 816-818 until i becomes greater than N−2. Once i becomes greater than N−2, the page transition file 400 is complete and the creation method ends.
The creation module 628 next initializes 904 variable PixLoopCounter to zero and then determines 906 if PixLoopCounter is equal to Num_Pix. This check terminates a loop for creating transition pixels corresponding to pixels in w0 to wH−1 pages when PixLoopCounter is equal to Num_Pix. If PixLoopCounter is equal to Num_Pix, the method for creating page transition blocki is complete.
If not, creation module 628 initializes 908 pixvalue buffer 626 to zero and sets 910 variable h to zero. Creation module 628 next determines if h is equal to H. This check terminates a loop for updating a transition pixel to incorporate color values of corresponding pixel in w0 to wH−1 pages. If h is not equal to H, creation module 628 performs 914 a left logical shift on pixvalue buffer 626 and left-shifts pixvalue by CBITS bits. Next, creation module 628 performs a bitwise OR on pixvalue buffer 626 and pixelPixLoopCounter (pixel at PixLoopCounter position) in wh. Creation module 628 then sets 916 pixvalue buffer 626 to the result of the bitwise OR function. After updating pixvalue buffer 626, Creation module 628 increments 917 h by 1 and determines 912 if h=H. If not, creation module 628 performs steps 914, 916 and 917 until h=H.
If h=H, the pixvalue has been updated to transition pixelPixLoopCounter and the creation module 628 appends 918 contents of pixvalue buffer 626 to the transition block 404. Creation module 628 then increments PixLoopCounter by 1 and repeats steps 906 to 919 as described above. Once PixLoopCounter equals Num_Pix, the transition block 404 is complete and creation module 628 moves to step 821 in
The waveform lookup table selection module 710 next initializes h 1003 to two and starts a counter to track the available pixel history so that the waveform lookup table can provide a waveform lookup table 500 that supports the amount of encoded pixel history. The waveform lookup table selection module 710 and page transition block feeding module 704 then receive 1004 one or more of transition direction, transition speed, and H from end user application 708.
Next, the waveform lookup table selection module 710 selects 1005 an appropriate waveform lookup table based on one or more of h, transition speed and transition direction. The selection criteria for waveform lookup table have been described above. The waveform lookup table selection module 710 then transmits 1006 the selected waveform lookup table to waveform buffer 724.
The page transition block feeding module 704 selects 1008 an appropriate page transition block 404 and transmits 1010 the page transition block 404 to display frame buffer 722. The selected page transition block 404 represents a transition from start page to the following page.
Next, the waveform lookup table selection module 710 and page transition block feeding module 704 wait 1012 transition length frames and then determine 1013 if the page transition should stop because the last page transition block has been transmitted to display frame buffer 722. In one embodiment, the page transition block determination module 704 informs the waveform lookup table selection module 710 about the last page transition block after transmitting the page transition block to display frame buffer 722. The end user application 708 can also inform the waveform lookup table selection module 710 and page transition block feeding module 704 that the user has selected to stop the page transition.
If the page transition is stopped, the method to display page transition is complete. If not, the waveform lookup table selection module 710 and page transition block feeding module 704 determine 1014 if the user has selected a different transition speed or transition direction. If the user has selected a different transition speed or transition direction, steps 1003 to 1014 are repeated again. If not, the waveform lookup table selection module 710 determines 1016 if h=H. If yes, steps 1008-1016 are repeated again. Otherwise, the waveform lookup table selection module 710 increments 1018 h by 1 to account for additional available pixel history.
Next, steps 1005-1018 are repeated. The waveform lookup table selection module 710 selects 1005 an appropriate waveform lookup table and transmits 1006 the waveform lookup table to waveform buffer 724. In one embodiment, the waveform lookup table selection module 710 determines that the selected waveform lookup table is the same as the previously transmitted waveform lookup table and the waveform lookup table skips step 1006.
The page transition block feeding module 704 selects 1008 and transmits 1010 the next page transition block that represents a transition from previously displayed page to the next page.
The page transition block feeding module 704 and waveform lookup table selection module 710 keep repeating steps 1005 to 1018, steps 1003 to 1018, or steps 1008 to 1018 until the last page transition block is transmitted or the user selects to stop the page transition.
In one embodiment, the display controller 712 does not receive the index length and the display controller 712 is pre-configured to expect waveform lookup tables with a particular index length. In another embodiment, the display controller 712 receives the index length as part of the waveform lookup table 500 and the display controller 712 reads the waveform lookup table to determine the index length for the waveform lookup table. For example, a waveform lookup table 500 is transmitted with a header comprising the index length used in the waveform lookup table 500.
The display controller 712 reads the received page transition block and reads the transition pixels. The display controller 712 then uses the value in transition pixels as an index to corresponding waveforms in the waveform lookup table, and determines 1104 a waveform for each pixel on the physical medial. The display controller 712 then applies 1106 the determined waveform to physical media 120 for transition length frames. The display controller 712 then repeats steps 1102-1106 for the next page transition block until the physical media 120 has displayed all the page transitions. After page transitions have been displayed, the display controller 712 may re-display the last page shown using waveforms that remove ghosting artifacts, according to prior art methods.