Abstract:
Storyboard processing in a movie during production, including: creating a proxy shot for an imported shot; displaying the proxy shot; receiving a completion signal for the imported shot; reloading related metadata for the imported shot; and displaying the newly imported shot. Keywords include proxy shot and imported shot.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit of priority under 35 U.S.C. §119(e) of co-pending U.S. Provisional Patent Application No. 61/605,541, filed Mar. 1, 2012, entitled “Optimizing the Generation of Multiple Shots.” The disclosure of the above-referenced application is incorporated herein by reference. 
     
    
     BACKGROUND 
       [0002]    1. Field of the Invention 
         [0003]    The present invention relates to storyboard processing, and more specifically, to processing and generating multiple shots in the storyboarding process of content production. 
         [0004]    2. Background 
         [0005]    In the process of making a movie, a storyboard is a pre-production process that is used to visualize scenes in detail. The storyboard expresses an image to be delivered as an illustration according to a sequence, illustrates a motion of camera and/or subject for each scene by visualizing the image to be presented to an audience and a customer. For example, the storyboarding process involves many panels of images drawn by a story artist, and presented in order for the purpose of visualizing sections of a motion picture prior to production. Typically, a completed storyboard includes the information that all staff, such as a producer, a director, and an art director may use to understand how to construct the corresponding story. 
       SUMMARY 
       [0006]    The present invention provides for efficiently processing and generating multiple shots in the storyboarding process of content production. 
         [0007]    In one implementation, a method of storyboard processing in a movie during production is disclosed. The method includes: creating a proxy shot for an imported shot; displaying the proxy shot; receiving a completion signal for the imported shot; reloading related metadata for the imported shot; and displaying the newly imported shot. 
         [0008]    In another implementation, a system for storyboard processing is disclosed. The system includes: a multi-thread processor configured to process and generate a plurality of imported shots in parallel by creating multiple threads, wherein the multi-thread processor accepts the plurality of imported shots as input along with related metadata; a table of proxy shots, each proxy shot generated for each imported shot of the plurality of imported shots; a processor configured to update data for the each proxy shot corresponding to the each imported shot, and to reload the related metadata for the each imported shot; and a display to display the plurality of imported shots. 
         [0009]    In yet another implementation, a non-transitory storage medium storing a computer program to process storyboard in a movie during production is disclosed. The computer program includes executable instructions that cause a computer to: create a proxy shot for an imported shot; display the proxy shot; receive a completion signal for the imported shot; reload related metadata for the imported shot; and display the newly imported shot. 
         [0010]    Other features and advantages of the present invention will become more readily apparent to those of ordinary skill in the art after reviewing the following detailed description and accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0011]      FIG. 1  is a flowchart illustrating a storyboarding process in accordance with one implementation of the present invention. 
           [0012]      FIG. 2  is a functional block diagram of a storyboard processing system in accordance with one implementation of the present invention. 
           [0013]      FIG. 3A  illustrates a representation of a computer system and a user. 
           [0014]      FIG. 3B  is a functional block diagram illustrating the computer system hosting the storyboarding process including creating and managing the proxy shots and controlling the order of imports. 
       
    
    
     DETAILED DESCRIPTION 
       [0015]    Certain implementations as disclosed herein provide a technique for efficiently processing and generating multiple shots in the storyboarding process of content production. After reading this description it will become apparent how to implement the invention in various implementations and applications. Although various implementations of the present invention will be described herein, it is understood that these implementations are presented by way of example only, and not limitation. As such, this detailed description of various implementations should not be construed to limit the scope or breadth of the present invention. 
         [0016]    In one implementation, the solution involves a proxy empty shot generated to represent each shot and imported into a new storyboard processing system. Once each thread completes processing, a signal is sent to the storyboard processing system that the data has been updated for that proxy shot. The storyboard processing system reloads the shot data and displays the newly-imported shot. 
         [0017]    In one implementation of the storyboard processing system, an import request accepts images as input along with other metadata. The storyboard processing system pre-processes the images to generate shots. It is possible to generate multiple shots with a single import request. It is also possible that multiple import requests are processing concurrently. However, it is essential that these shots are imported in the order it was defined during import. To speed up the importing of the shots, the processing is split into multiple threads which operate in parallel. However, if each shot imports as its preprocessing completes, then it is possible that shots could get imported out of order as the pre-processing time might vary between shots. In contrast, if the system waits until all the preprocessing completes before importing, it would not be able to provide direct feedback to the user. It would also keep the system from allowing concurrent imports. Accordingly, in one implementation, the storyboard processing system maintains the correct order even when shots are completed out of order. 
         [0018]    A blank or proxy shot is generated for each imported shot and is displayed in the storyboard processing system. Once each thread completes processing, a signal is sent that the data has been updated for that proxy shot. The system refreshes and reloads all the related data for the shot and displays the newly imported shot. 
         [0019]      FIG. 1  is a flowchart illustrating a storyboarding process  100  in accordance with one implementation of the present invention. In this implementation, the process  100  provides a technique for efficiently processing and generating multiple shots in the storyboarding process of content production. In one implementation, efficient processing and generation of multiple shots is achieved by creating multiple threads that process shots in parallel in a storyboard processing system. Since the processing might complete out of order, a solution that maintains the correct order even when shots are completed out of order is used. Although the process  100 , in the illustrated implementation, is used to manage, develop and/or analyze a story in motion picture, this technique can be modified to be used to develop and/or analyze a story in other areas, such as in computer games, commercials, TV shows, music videos, theme park rides, and in forensic visualization. 
         [0020]    In the illustrated implementation of  FIG. 1 , the storyboarding process  100  involves an import request accepting images as input along with other metadata. The storyboarding process  100  pre-processes the images to generate shots. In one implementation, multiple shots are generated with a single import request. In another implementation, multiple import requests are processed concurrently. However, these shots should be imported in the order they were defined during import. To speed up the importing of the shots, the processing is split into multiple threads which operate in parallel. Thus, at box  102 , multiple shots are imported using multiple thread processing. As described above, concurrent processing using multiple threading can result in shots getting imported out of order. Therefore, the storyboarding process  100  needs to maintain the correct order even when shots are completed out of order. 
         [0021]    A blank or proxy shot is generated, at box  104 , for each imported shot and is displayed in the storyboard processing system. Once each thread completes processing, at box  106 , a signal is sent that the data has been updated for that proxy shot, at box  108 . The process  100  refreshes and reloads all the related data for the shot, at box  110 , and displays the newly imported shot, at box  112 . 
         [0022]      FIG. 2  is a functional block diagram of a storyboard processing system  200  in accordance with one implementation of the present invention. The storyboard processing system  200  includes a multi-thread processor  210 , a table of blank proxy shots  220 , and a processor  230 . The system  200  displays the imported shots on a display  240 . The multi-thread processor  210  is configured to perform efficient processing and generation of multiple shots by creating multiple threads that process shots in parallel. 
         [0023]    In the illustrated implementation of  FIG. 1 , the multi-thread processor  210  imports and accepts images or shots as input along with other metadata. To speed up the importing of the shots, the multi-thread processor  210  splits the shots into multiple threads which operate in parallel to generate shots. As described above, concurrent processing using multiple threading can result in shots getting imported out of order. Therefore, the storyboard processing system  200  needs to maintain the correct order even when shots are completed out of order. This is accomplished by configuring a table of blank proxy shots  220 , each proxy shot generated for each imported shot. Once each thread of the multi-thread processor  210  completes processing, a signal is received at the processor  230  to update the data for a corresponding proxy shot. The processor  230  refreshes and reloads all the related data for the shot in the table  220 , and displays the newly imported shot on the display  240 . 
         [0024]      FIG. 3A  illustrates a representation of a computer system  300  and a user  302 . The user  302  uses the computer system  300  to perform various operations described with respect to  FIGS. 1 and 2 . Thus, the computer system  300  includes a storyboarding process  390  which is similar to the process  100  described in  FIG. 1 . 
         [0025]      FIG. 3B  is a functional block diagram illustrating the computer system  300  hosting the storyboarding process  390  including creating and managing the proxy shots and controlling the order of imports. The controller  310  is a programmable processor and controls the operation of the computer system  300  and its components. The controller  310  loads instructions (e.g., in the form of a computer program) from the memory  320  or an embedded controller memory (not shown) and executes these instructions to control the system. In its execution, the controller  310  provides the storyboarding process  390  as a software system. Alternatively, this service can be implemented as separate hardware components in the controller  310  or the computer system  300 . 
         [0026]    Memory  320  stores data temporarily for use by the other components of the computer system  300 . In one implementation, memory  320  is implemented as RAM. In one implementation, memory  320  also includes long-term or permanent memory, such as flash memory and/or ROM. 
         [0027]    Non-transitory storage  330  stores data for use by other components of the computer system  300 , such as for storing data used by the storyboarding process  390 . In one implementation, storage  330  is a hard disk drive. 
         [0028]    The media device  340  receives removable media and reads and/or writes data to the inserted media. In one implementation, for example, the media device  340  is an optical disc drive. 
         [0029]    The user interface  350  includes components for accepting user input from the user  302  and presenting information to the user  302 . In one implementation, the user interface  350  includes a keyboard, a mouse, audio speakers, and a display. The controller  310  uses input from the user  302  to adjust the operation of the computer system  300 . 
         [0030]    The I/O interface  360  includes one or more I/O ports to connect to corresponding I/O devices, such as external storage or supplemental devices (e.g., a printer or a PDA). 
         [0031]    In one implementation, the ports of the I/O interface  360  include ports such as: USB ports, PCMCIA ports, serial ports, and/or parallel ports. In another implementation, the I/O interface  360  includes a wireless interface for communication with external devices wirelessly. 
         [0032]    The network interface  370  includes a wired and/or wireless network connection, such as an RJ-45 or “Wi-Fi” interface (including, but not limited to 802.11) supporting an Ethernet connection. 
         [0033]    The computer system  300  includes additional hardware and software typical of computer systems (e.g., power, cooling, operating system), though these components are not specifically shown in  FIG. 3B  for simplicity. In other implementations, different configurations of the computer system can be used (e.g., different bus or storage configurations or a multi-processor configuration). 
         [0034]    The above description of the disclosed implementations is provided to enable any person skilled in the art to make or use the invention. Various modifications to these implementations will be readily apparent to those skilled in the art, and the generic principles described herein can be applied to other implementations without departing from the spirit or scope of the invention. Accordingly, additional implementations and variations are also within the scope of the invention. Further, it is to be understood that the description and drawings presented herein are representative of the subject matter which is broadly contemplated by the present invention. It is further understood that the scope of the present invention fully encompasses other implementations that may become obvious to those skilled in the art and that the scope of the present invention is accordingly limited by nothing other than the appended claims.