Abstract:
A viewing device may be utilized to facilitate viewing of a scene or event. The viewing device may continuously record a sequence of frames of predetermined duration. At periodic intervals, the sequence of frames overwrite previously stored sequence of frames. When the user wishes to watch a replay of a previous sequence of frames of predetermined duration, the user can continue looking through the device to see a stored sequence of frames rather than a real time display of an ongoing event.

Description:
BACKGROUND 
   This invention relates generally to viewing devices, such as telescopes and binoculars. 
   Conventional viewing devices may facilitate the viewing of objects that are too far away from the viewer to be seen clearly. Such viewing devices may include cameras, binoculars, and telescopes. In many cases, cameras include optics which magnify the viewed image and therefore facilitate viewing of the image. In some cases, the camera may be used effectively as a telescope or binoculars. 
   Many times, viewers may be viewing scenes in which objects are changing positions rapidly. For example, viewers watching a sports event through a pair of binoculars, may miss details or a portion of what actually occurred. In one example, the action may occur so quickly that the user was unable to fully comprehend the event. 
   Thus, in a variety of situations, persons viewing scenes or objects may wish to re-view what they have just seen. Cameras may be utilized to record a scene. For example, some cameras include a movie option. In such case, the capacity of the camera to record scenes is limited. Therefore, when viewing an extended event, it may not be viable to simply record the whole event. 
   A movie camera may be utilized to record an entire event. However, a substantial amount of storage is needed to store the entire event if the event is sufficiently long. This results in complexities with respect to suitable storage media and with respect to the handling of those media. Moreover, the cost to achieve extended storage may be prohibitive in many applications. 
   Thus, conventional viewing devices may have limitations with respect to capturing fast moving events. Conversely, movie cameras may not be suitable in all situations to capture such events on an ongoing basis. Because of the awkwardness, weight and expense of suitable storage media for continuous storage, movie cameras may not always offer a reasonably convenient solution. 
   Therefore, there is a need for better ways to enable users to view events that may include complex motion, actions or occurrences. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a block depiction of one embodiment of the present invention; 
       FIG. 2  is a block depiction of the embodiment shown in  FIG. 1  in a different mode in accordance with one embodiment of the present invention; 
       FIG. 3  is a block depiction of another embodiment of the present invention; 
       FIG. 4  is a flow chart for setup software in accordance with one embodiment of the present invention; 
       FIG. 5  is a flow chart for record software in accordance with one embodiment of the present invention; 
       FIG. 6  is a flow chart for command software in accordance with one embodiment of the present invention; and 
       FIG. 7  is a flow chart for replay software in accordance with one embodiment of the present invention. 
   

   DETAILED DESCRIPTION 
   Referring to  FIG. 1 , a replay viewing device  10  may include an optical element  24  to capture a scene S. The optical element  24  may be a focusing lens, a telescopic lens, a macrolens, or any of a variety of other optical systems. The optical path between the scene S and the user&#39;s eye E may be selectively blocked by a shutter  22 . Also in the optical path is a beam splitter  18  in one embodiment. 
   With the shutter  22  open, light from the scene S passes through the optical element  24  and the shutter  22 . Part of the light is reflected by the beam splitter  18  to be captured by the image sensor  20 . In one embodiment, the image sensor  20  may be a complementary metal oxide semiconductor (CMOS) image sensor. Alternatively, the image sensor  20  may be a charge coupled device (CCD) image sensor. The remaining portion of the light from the scene S passes onwardly for viewing by the user indicated at E. 
   The replay viewing device  10  may be binoculars, a telescope, a microscope, or even a camera. It may function in one or more of these modes in different embodiments. 
   The image sensor  20  may be coupled to a loopback controller  14 . In one embodiment, the loopback controller  14  may be a microcontroller. The loopback controller  14  controls when the image sensor  20  captures images and when the image sensor  20  transfers captured frames to the loopback controller  14  for storage in the memory  12  or for display on the display  16 . 
   In one embodiment, the display  16  may be a liquid crystal display; however, any other display technology may be utilized as well. When an image is displayed on the display  16 , it is reflected by the beam splitter  18  for viewing by the user indicated at E. 
   The memory  12  may be any convenient storage device including a flash memory. In some embodiments, the device  10  may be portable and may be battery powered. 
   In one mode of operation, the image sensor  20  continuously records the scene indicated at S as long as the shutter  22  is open. The image sensor  20  may record a sequence of frames that are transferred by the loopback controller  14  to memory. The loopback controller  14  may take a predetermined sequence of frames of defined duration and may store that sequence in the memory  12 . Upon user selection of the re-view feature, that sequence of frames may be displayed on the display  16 . 
   In one embodiment, the memory  12  may be only of a sufficient capacity to handle a single sequence of frames of the predetermined duration. Thereafter, the loopback controller  14  automatically overwrites the existing memory  12  with frames newly captured. 
   In some embodiments, the memory  12  may be capable of storing a predetermined number of such sequences of frames. However, once the memory  12  is full, the ensuing or subsequent storage of a sequence of frames overwrites an earlier stored sequence of frames. 
   Thus, the viewing device  10  continuously records sequences of frames and makes them available for viewing until such time as they need be overwritten. The user can select the option to display a previously stored sequence of frames. In such case, the loopback controller  14  accesses a sequence of frames from memory  12  and displays them on the display  16 . As a result, the user has access to a replay feature. If the user wants to watch a given sequence of events that fit within the defined duration again, the user can select the replay option and simply view, through the display  16 , the stored sequence in place of the real time scene S. In such case, as shown in  FIG. 2 , the shutter  22  may be closed so that the user does not view both the ongoing activities in the scene S and the replayed, stored sequence of frames. 
   In some embodiments, the storage of frame sequences may be stopped based on the attitude of the device  10 . For example, if the device  10  is simply pointing downwardly, the storage of frame sequences may be automatically terminated. In such embodiment, an angular orientation sensor may be used to detect device  10  attitude to save power and preserve meaningful data. 
   In other embodiments, the user may operate a button to select the display of stored frame sequences. In response to operation of the button, the shutter  22  is automatically closed and the replay of the stored frame sequence is automatically initiated. 
   The loopback controller  14  and memory  12  may work in a circular queue, in one embodiment, to allow the video recording memory to be continuously reused until the user stops the loop. In addition, other buffers and memory systems amenable to a looping system may be used, as well. In some embodiments, the predetermined number of frames may be set initially. In other embodiments, the user may specify the length or duration of the sequence of frames up to the maximum capacity of the memory  12 . Thus, in some embodiments, one or more loops may be utilized that are of a user configurable duration. The capacity of the memory  12  may be substantially sufficient to store an integral number of loop lengths, such as one, two or three loop lengths. 
   Referring to  FIG. 3 , in accordance with another embodiment of the present invention, a viewing device  10   a  may include an image sensor  20  that receives light from a scene S through an optical element  24 . The image sensor  20  may capture a number of frames and transfer them to the loopback controller  14  that stores them on the memory  12 . These frames may be simultaneously displayed on the display  16  and transferred to memory by the loopback controller  14  as soon as they are captured. Thus, the user, indicated at E, receives a real time display of the captured frames that may be so slightly displaced in time that the user may not even notice the time sequencing in one embodiment. 
   The loopback controller  14  can develop a real time display of the current image or may selectively display a sequence of frames stored in the memory  12 . Thus, when the user selects the replay option, the real time display stops and a sequence of frames is displayed on the display  16  under control of the loopback controller  14 . 
   Referring to  FIG. 4 , the setup software  30  may be stored in the memory  12 , in one embodiment of the present invention. Initially, the setup software  30  sets a default loop length. When the user enters set-up mode, the software  30  prompts the user to enter a loop length, as shown at block  32 , for example, by enabling the display and displaying some form of menu selections. The loop length is the duration of the predetermined sequence of frames. Thus, the user may provide an input that is detected at diamond  34 . Once the input is received, the loop length is set as indicated in block  36 . 
   Turning to  FIG. 5 , the recording of the sequence of frames may be controlled by software  40 , that may also be stored on the memory  12 , in one embodiment. Of course, separate removable memories may be provided in some embodiments. 
   The device  10  may support some fixed number of loops in some embodiments. The number of loops depends on the available memory and the loop length set by the user. Different types of events may involve different loop times. In each case, the loop count is set to the average length of the respective event. Each loop may store four parameters: first frame offset, last frame offset, loop buffer size, and whether the loop has been used. 
   Upon entering the record software  40 , the loop parameters are initialized as indicated at block  41  in  FIG. 5 . Individual frames are captured (block  42 ) and stored in a loop (circular queue) in memory, as indicated at block  43 . Between the storage of each frame, a check determines whether any user inputs have been received. If the pause button is pressed, as determined in diamond  44 , the record loop is stopped (block  45 ) and the software  40  waits for a command from the user that indicates what to do next (block  50 ). If the replay button is operated as determined in diamond  46 , the play frames software  60  is executed. 
   A basic command loop  50  that waits for user input is shown in  FIG. 6 . Pressing the record button (diamond  51 ) returns to the record software  40  immediately, reinitializes the software  40  and overwrites the previously stored frames with new frames. Operation of the replay button, as detected at diamond  52 , causes the current loop to be replayed. Every time the replay button is pressed, the playback begins at the “beginning” of the loop, i.e., the oldest frame in the loop. If the save button is pressed (diamond  53 ), then the current loop parameters are saved (block  55 ) and the loop is marked as used (block  56 ). If the next available loop is not used (diamond  57 ) then its parameters become the current loop parameters and the flow goes back to waiting for the next command. 
   If all loops are marked as used (diamond  57 ) then the user will be informed (block  58 ) that the current loop is now set to the default loop (block  59 ). There is a default loop that allows the replay feature to continue to work when all the loops are used. The data in the default loop can be saved later when the device  10  is attached to a computer system (not shown) and the rest of the loops are saved. 
   When the user presses the play frames button (block  60 ), the display is enabled (block  61 ) and the parameters for the loops are initialized (diamond  62 ) as shown in  FIG. 7 . Playback begins with the oldest frame in the loop. A frame is retrieved (block  63 ) and the frame is displayed (block  64 ). Between the display of each frame, a check determines whether any user inputs have been received. If the pause button is pressed (diamond  65 ) the play is stopped (block  68 ) and the software  60  waits for a user command indicating what to do next (block  50 ). If the record button is pressed (diamond  66 ) the play is stopped (block  69 ) and the record software  40  is executed. If the end of the loop is reached (diamond  67 ) then the flow is restarted at block  61 . 
   While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.