Abstract:
A later generation display device may be connected to the video output port of an older electronic device which utilized an earlier generation display such as a dot matrix display. The early generation display is replaced with the later generation display. The display device includes software which receives graphic data through the video output port and identifies which frame is currently being streamed. The display device matches the frame being streamed to a stored graphic frame having a higher resolution and/or color. The matched frame is delivered to the later generation device so that the user can experience a higher quality visual effect by retrofitting the older electronic device with the later generation display.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefits of provisional patent application Ser. No. 61/434,434, filed on Jan. 20, 2011, the entire contents of which is expressly incorporated herein by reference. 
     
    
     STATEMENT RE: FEDERALLY SPONSORED RESEARCH/DEVELOPMENT 
       [0002]    Not Applicable 
       BACKGROUND 
       [0003]    The display device disclosed herein relates to a method and device for upgrading or altering a visual effect of an older machine having an earlier generation monitor (e.g., monochrome monitor). 
         [0004]    Since the early 1990s, pinball games have incorporated low resolution (most commonly, 128×32), monochrome, dot-matrix displays to provide video animation and score information during gameplay. Games using these displays are generally capable of producing only grayscale (intensity only) video. The video usually contains 4-16 intensity levels, generated by transmitting a sequence of video frames to the dot-matrix display at a predetermined frame rate (e.g., greater than 60 Hz). By toggling dots on (full-intensity) and off, the average intensity at a dot location is modulated to produce perception of a desired grayscale level. Over the last two decades, many players and pinball collectors have sought an upgrade to this aging display technology but the high cost of redesigning software and hardware systems has impeded the introduction of color displays and upgrades. 
       BRIEF SUMMARY 
       [0005]    The display device disclosed herein addresses the needs discussed above, discussed below and those that are known in the art. The display device disclosed herein is for use in conjunction with older pinball machines. The display device enhances the players experience by converting the game&#39;s standard grayscale video display to an upgraded video display. By way of example and not limitation, the upgraded video display may include a full-color representation, or a full-color high resolution representation. The display device may be connected to the pinball machine and provide improved visual experience without modification of game (e.g., pinball) software and is compatible with the game&#39;s existing display port. When properly connected to a pinball machine, the device may identify the received grayscale video frames in real-time, and retrieve associated color data stored within the device. The retrieved color data is used to either enhance or replace the original grayscale video frame to an improved color video frame. The improved color video frame may be output to a high resolution color display. 
         [0006]    The display device disclosed herein provides one or more benefits or advantages. The following listing shall not be construed as an exclusive listing of benefits and advantages. Rather, the listing provides a listing of benefits and advantages that for certain embodiments or modifications of the embodiments disclosed herein could be achieved with the display device. By way of example and not limitation, the display device may be compatible with existing game display software and hardware, and may be used to upgrade and incorporate color into games without hardware or software redesign. 
         [0007]    The display device may utilize a game&#39;s normal interface and cable to connect to the game&#39;s display port, making it easy to replace a standard low-resolution, monochrome (also referred to as grayscale), dot-matrix display with a multicolor displayor a high resolution full color display. 
         [0008]    The display device may also produce an enhanced colorized video frame by combining a received monochrome video frame with color data stored internal to the device. 
         [0009]    The display device may produce a custom color video frame by replacing a received monochrome video frame with custom frame data stored internal to the device. The custom frame need not bear any resemblance to the original frame. In other words, the graphic sequence of the original game may be replaced with a different graphical sequence. By way of example and not limitation, if the original graphical sequence displayed a sea monster creature waving its arms when 100 points is attained, then the new graphical sequence may be an alien creature waving its arms when 100 points is attained. In this manner, one or more themes may be programmed into the display device and the theme may be selected by the player or owner as desired. 
         [0010]    The display device is also capable of producing a color video frame of higher resolution than the input video frame. The high resolution output can be used to draw custom shapes to emulate the dots in a standard dot-matrix display, or alternately to display custom high-resolution video frames stored or generated by the device. 
         [0011]    In the display device, the data used for frame identification and color processing may be stored in programmable memories, and can be customized for use with many different game titles. 
         [0012]    The display device may perform color frame-processing in real-time and synchronously with game play. 
         [0013]    The display device may also convert a game&#39;s normal output frame rate to a slower rate compatible with high resolution monitors and displays. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0014]    These and other features and advantages of the various embodiments disclosed herein will be better understood with respect to the following description and drawings, in which like numbers refer to like parts throughout, and in which: 
           [0015]      FIG. 1  is a block diagram showing the processing performed by software and hardware of an improved display device; and 
           [0016]      FIG. 2  is a detailed block diagram of an embodiment of the frame identifier processing. 
       
    
    
     DETAILED DESCRIPTION 
       [0017]    Referring now to the drawings, the display device may include software and hardware. The hardware components may include a connector which connects the display device to the video output port of an existing game. The connector receives data from the video output port of the existing game. The hardware components may also include one or more microprocessors, microcontrollers, or programmable logic devices (including field-programmable gate arrays, or FPGAs) which use software to process game data and generate a new color video output signal. The software includes a frame synchronizer  101  which organizes the data into frames. The software also includes a frame identifier  103  which identifies the frames organized by the frame synchronizer  101  by generating a unique tag for each frame. The generated tag may be compared to preprogrammed tags of frames in a tag lookup table  109 . The preprogrammed tags may be associated with multicolor or high resolution graphical data which can be combined with the original monochrome game or alternately used to replace the original game frames. The output is new color frames that may be representative of the original graphics or is a new theme. The new color frames may be further combined by the device to create output frames which contain more color intensities than the original game frames. The data may be output to a full color display, a full color high resolution display, or other display as desired. 
         [0018]    A block diagram describing the processing performed by the display device is provided in  FIG. 1 . A connection is made from a game&#39;s video output port to the input of a frame synchronizer  101 . The frame synchronizer organizes the data received from the game into frames and conveys the frames to a frame buffer  102  which stores one or more input video frames. The output of the frame buffer is connected to a frame identifier  103  and color processor  105  for further processing. 
         [0019]    The frame identifier  103  processes data from the frame buffer  102  in order to generate an identification tag and the tags are compared to the contents of an attached programmable identification tag memory  109 . The frame identifier stores memory pointers that are used by a connected color lookup  104  to access color data associated with the identified frames. The color lookup  104  reads color data from an attached programmable color data memory  110  and converts the stored data to red, green, and blue amplitudes which are passed to the color processor  105 . 
         [0020]    The color processor  105  combines the data from the color lookup  104  and the input frame buffer  102  to produce high-resolution color video frames which are output to a frame combiner  106 . The frame combiner  106  combines multiple color frames together to generate a composite output frame and passes the composite frame to the output display interface  107 . The output display interface  107  reformats the data and delivers it to a connected color display  108 . 
         [0021]    The display device overcomes this obstacle by providing a solution that is compatible with existing game hardware and software systems, and can be used to upgrade older games for which no inherent color processing exists. The device includes programmable memories which are configured prior to normal device operation. The memories contain data used for frame identification and color processing, and are organized in lookup tables that are accessed during gameplay. The data stored in these memories is generated offline by processing captured video sequences achieved through prior game play or manipulation. 
         [0022]    Because the video sequences displayed by pinball machines often recur from one play of the game to another, captured video frames can be obtained offline and processed to generate frame identification tags and associated color data. Frame identification tags are generated by processing regions of the video frame that contain salient features and ignoring features that may be prone to change during game play, such as player scores. An artist uses computer methods to create associated color data for the original frames or creates new color frames. The frame identification tag and corresponding color information is then stored in the device lookup tables, implemented by programmable memories. 
         [0023]    During normal operation, the same identification processes are used to generate tags for each input frame, and the tags are compared to those previously stored in the internal lookup table. When a match is found, the associated color data is retrieved and used to enhance or replace the input frame. If a match is not found, the display device may display the unaltered input frame using a default color. The colorized frame is displayed by the device on a color display or monitor. 
         [0024]    In the following, more detailed information is provided about the internal processes performed by the software of the display device. The inputs to the frame synchronizer  101  are digital signals delivered by the normal display interface of a pinball machine. The interface includes a serial data signal, one or more synchronization signals for identifying the start of a new frame, and a clock for latching the data and synchronization signals. The frame synchronizer identifies frame boundaries by monitoring the synchronization signals for indication of the start of a new frame. Serial data is captured and organized into data words which represent the intensity levels for each dot in the input video frame. Video frames from the pinball machine may be organized into data words that use a single dot to represent the on or off state of each dot in a binary video frame. Alternatively, video frames from the pinball machine may be organized into data words that use multiple bits to represent each dot to produce a grayscale frame containing more than two intensity levels. 
         [0025]    The organized video frame data is stored to a video frame buffer  102  which is capable of storing multiple video frames. The memory is organized as a circular buffer, meaning that as the memory fills older data is overwritten by newer data. Buffer writes and reads may occur asynchronously so that data can be output from the buffer at a different frame rate than it is received. The frame buffer  102  is not required for all embodiments of the display device. Its main purpose is to support the recall of prior binary frames for frame identification and/or color processing, but can be bypassed when this feature is not required. 
         [0026]    When present, the frame buffer  102  should be at least three to five times the size of one input video frame. The stored video frames may be combined to produce an output video frame with more intensity levels than the original stored frames. By way of example and not limitation, three stored binary frames can be combined to produce an internal grayscale representation with four intensity levels. More than three frames of storage are useful for frame rate conversion when the output frame rate is asynchronous to the input frame rate. Storage of five frames can be used to produce grayscale images and utilize triple buffering techniques for frame rate conversion. Triple buffering prevents stored frame data from being overwritten by new frame data while the stored frame is being read from the buffer. With triple buffering, the three most recent complete frames are read from the buffer while older frame data is overwritten by new input frame data. 
         [0027]    The output of the frame buffer  102  is connected to a frame identifier  103 . The frame identifier  103  processes the data from one or more stored input video frames and performs region-based pattern matching against a set of known patterns. A detailed block diagram showing the processes employed for the frame identifier  103  is provided in  FIG. 2 . 
         [0028]    Data masks  201  are used to identify regions for matching and a hash function  202  is applied to reduce the input frame data to a set of small tags that can be used for matching. Each mask identifies specific dot locations to be used for pattern matching. Locations that are not part of the mask are not processed, or their data are replaced with known values so that the locations are effectively ignored during matching. By way of example and not limitation, the data masks  201  may be applied to each 128×32 input frame. The data masks are defined offline during creation of the tag lookup table  109  and color lookup table  110 , and parameters defining the masks are stored to the device along with the game-specific tag and color data. The output of the data mask is applied to a hash processor  202  that performs a Jenkins hash function and produces a 32-bit tag for table lookup  203 . The accessed tables are stored in the attached identification tag memory  109 . 
         [0029]    The identification tag memory  109  is organized into lists of numerically ordered tags. For each tag, the memory stores a data pair comprised of the tag value and an associated memory pointer. The memory pointer specifies an address in the color data memory  110  for retrieving color data associated with the stored input video frames. The tag and color data memories are programmable. Their contents are created offline, customized for each game title, and stored to the device. 
         [0030]    In  FIG. 2 , the display device employs a small tag table lookup  203  for each defined mask. By searching multiple lists, each associated with a specific mask, searches can be performed more rapidly than searching one large list. To perform pattern matching, the generated tags are compared to the stored tags values using binary search techniques. If a match is found, the associated memory address pointer is returned and stored to an address buffer  204  for further processing. Otherwise, a default value is written to the buffer to indicate no match was found Like the frame buffer  102 , the address buffer  204  is organized as a circular buffer and supports the recall of color addresses from prior frames. The address buffer  204  contents are accessed by the color lookup  104  to locate associated color data in the color data memory  110 . 
         [0031]    The color data memory  110  is programmed offline and stores custom color data used to enhance or substitute the game&#39;s normal monochrome frame data. The contents of the color data memory  110  are encoded and compressed to reduce storage requirements. The color lookup  104  reads the color data memory  110  and performs all required memory decoding and decompression, and outputs red, green, and blue (RGB) color amplitude data to the color processor  105 . 
         [0032]    In the embodiment discussed herein, the color data memory  110  stores associated color data for each dot in a 128×32 input video frame. Color data is prepared by an artist offline, and stored as a series of 4-bit indices to a RGB lookup table. One color index is stored for each of the 128×32 locations. To reduce storage requirements, each of the 32 rows of color indices is compressed using run-length encoding so that strings of consecutive color indices are replaced by the color index and a count. During color lookup  104 , the encoded color indices are read starting from a memory location specified by the address buffer  204 . As color data is read from the memory, decoding is performed to decompress the string of color indices and the color indices are used to look up a triplet of 6-bit RGB values from a stored RGB lookup table. The uncompressed RGB data is then output to the color processor  105 . 
         [0033]    The inputs to the color processor  105  are the RGB data from the color lookup  104  and the dot intensity data from the input frame buffer  102 . The color processor combines the retrieved color data with the input frame buffer intensities to produce a colorized version of the input frame. The color processor also converts the combined data to an output format and resolution that is compatible with the color display  108 . For color enhancement modes of operation, the input frame intensities are used to modulate the input RGB color amplitudes and outputs brighter or darker shades of the input color. For color substitution modes of operation, the input frame intensities may be ignored (and in some embodiments, may not even be present) and the input color amplitudes are transmitted to the output directly. 
         [0034]    The displayed output frame resolution may be equal to greater than the input frame resolution. In the current embodiment, a 128×32 input frame is displayed using a higher resolution by mapping the input frame to 1280×320 pixels of a 1366×768 high-resolution flat panel display. To emulate the dots produced by a dot-matrix display, after color combining each colorized dot is mapped to a 10×10 pixels in the output frame. Within each 10×10 region, a set of pixels are set to the same RGB amplitudes to produce the appearance a circular-shaped dot in the output video frame. The high resolution output from the color processor  105  is conveyed to a frame combiner  106 . 
         [0035]    The frame combiner combines one or more colorized frames to produce a final composite output frame to be sent to the display. The frame combiner improves video quality and helps to eliminate flicker when the output frame rate is slower than the input frame rate. In the current embodiment, the input frame rate is approximately 120 Hz and the output frame rate is 60 Hz. The frame combiner sums the color amplitudes from a sequence of three colorized frames to produce a single composite colorized output frame. 
         [0036]    The composite colorized output frame is passed to the output display interface  107  which formats the data using an industry standard video interface and transmits the data to a color display  108 . In the current embodiment, this may be performed using low-voltage differential signaling (LVDS) over a 30-pin flat panel display interface cable. The red, green, and blue color data are transmitted serially using a standard signaling method specified by the display manufacturer. The color display  108  is implemented using a high-resolution Chi Mei Optronics M156B1-L02 flat panel LCD monitor. 
         [0037]    There are many alternate embodiments of the display device. Some of these include: 
         [0038]    The frame identifier  103  may use multiple input frames for pattern matching. One such embodiment combines multiple input frames from the frame buffer  102  and performing masking  201  and hashing  202  on grayscale image representations. 
         [0039]    The frame identifier may perform masking  201  and hashing  202  on each of a group of input frames in the ordinary manner but then combines the resulting tags into a composite tag before table lookup  203 . 
         [0040]    The regions used for masking  201  may be adaptively determined from partial frame data. For example, a pattern of dots that matches an alphanumeric character (like the number “0” in a player score) can be used to identify and mask out a larger region of dots that encompasses the entire score. 
         [0041]    The Jenkins hash function used by the hash processor  202  may be replaced by any mathematical or logic operation that reduces the input data to a smaller sized tag that can be used in a table lookup. 
         [0042]    The tag produced by the hash processor may be sizes other than 32-bits. 
         [0043]    The color processor  105  or frame combiner  106  may perform addition processing to conceal or colorize unidentified frames instead of displaying them with a default color. Unidentified frames may be concealed by holding a previous frame. Unidentified frames may be colorized using color data obtained from a previously identified frame. Other methods for concealing or colorizing unidentified frames are possible. 
         [0044]    The color lookup  104  and attached color data memory  110  may process and store compressed or uncompressed high-resolution color data that will be substituted for the low-resolution input data. JPEG is a common image compression technique but others are possible. When compression is used, the color lookup  104  would be modified to include corresponding decompression techniques to recover the high resolution RGB data and provide this data directly to the color processor  105  for color substitution. 
         [0045]    The color data memory  110  could store RGB values directly instead of color indices. 
         [0046]    The color lookup  104  could map low resolution dots to shapes other than circles, and could add additional color variation to the mapped shape to produce interesting color or lighting effects. 
         [0047]    The output display interface  107  could make use of any other standard video interfaces or connectors like VGA, or could use any size flat panel interface connector such as 20-pin or 40-pin connectors. 
         [0048]    The high-resolution display  108  may be implemented using any color monitor or flat panel display device that contains higher resolution than the input frame data. 
         [0049]    The various hardware and software aspects of the display device described herein may be implemented in a field-programmable gate array (“FPGA”) in the form of what is often referred to as programmable hardware. The FPGA may also include the use of an embedded microcontroller used to carry out one or more of the tasks disclosed herein. “Firmware” may refer to embedded software for the microcontroller. The display device may also include true software which runs on a personal computer which is used to colorize the monochrome frames and generate ROM files that contain data and/or instructions for use by the display device to carry out the coloring process. 
         [0050]    The above description is given by way of example, and not limitation. Given the above disclosure, one skilled in the art could devise variations that are within the scope and spirit of the invention disclosed herein. Further, the various features of the embodiments disclosed herein can be used alone, or in varying combinations with each other and are not intended to be limited to the specific combination described herein. Thus, the scope of the claims is not to be limited by the illustrated embodiments.