Abstract:
A method and apparatus is provided for dynamically generating digital video streams without an equivalent analog stream. The apparatus includes a configuration manager. The configuration manager presents configuration options to a user. User selections are recording as user preferences. The configuration manager is coupled to a media generator, which generates intermediate digital content based upon the user preferences. The media generator may be coupled to a local storage for storing electronic audio and visual information. The intermediate digital content is transferred to an encoder, which encodes the intermediate digital content to a digital format specified by in the user preferences.

Description:
FIELD OF THE INVENTION  
       [0001]     The present invention relates to a method and apparatus for processing audio-visual information, and more specifically, to a method and apparatus for dynamic digital content generation for presentation by a digital media server.  
       BACKGROUND OF THE INVENTION  
       [0002]     In recent years, the media industry has adopted digital technologies to record and play numerous types of media, such as audio, still photographs, and moving video. The use of digital video has become increasingly prevalent in today&#39;s society. This phenomenon is not without warrant, as digital video provides numerous advantages over analog video. As users of the popular DVD format well know, digital video does not degrade from repeated use. Digital video can also either be delivered for presentation all at once, as when loaded by a DVD player, or delivered in a stream as needed. Today, digital media systems are available to deliver and present digital content to viewers in increasing numbers. However, the digital content needed to develop and test these digital media systems is in short supply.  
         [0003]     Digital vide is often first recorded in traditional analog form. It is encoded, or digitized, and compressed into a digital format that can be stored on disk and decoded during playback. For example, using techniques well understood by those in the art a show broadcast over analog television may be converted into a digital format by using a device called an encoder.  
         [0004]     However, while the practice of converting analog video presentations into digital form may be well understood, it is not practical for either testing or commercial purposes. The intellectual property rights of the original owners of the analog video must be respected, and only those individuals who have obtained the rights to the analog media presentation are authorized to use the converted digital presentation for private use.  
         [0005]     During testing of a digital media system it is necessary to have ample amounts of digital video to sufficiently test all components of the digital media system. Prior attempts to generate substantial amounts of digital content to facilitate system testing have met with limited success. As mentioned earlier, digitalizing analog video is cost prohibitive, due to the licensing of intellectual property. Also, as it was not originally contemplated for digital presentation, the content available in analog broadcasts is neither well suited nor of sufficient complexity to test the performance of a digital media system. Further, testing fats such as fast forward or rewind is difficult at best without specific temporal information visible in the presentation. Such temporal information may include the time the presentation was encoded, the time the presentation was delivered by the server, and the time the presentation was received by the client. Without such information, it is difficult to determine the accuracy of a fist forward or rewind operation, or the lag time in the digital media system when delivering frames of video.  
         [0006]     Content for digital media testing also needs to conform to certain standards. One popular stank for digital media is DVB, or Digital Video Broadcasting. DVB is a set of standards for transmitting compressed digitized video over broadcast industry transmission channels, such as cable, satellite, or terrestrial transmissions. Further information about the DVB standard may be obtained at the Internet web address “www.dvb.com”. ATSC is another standard for transmitting video that is used primarily in digital high definition television (HDTV), standard definition television (SDTV), data broadcasting, multi-channel surround-sound audio, and satellite direct-to-home broadcasting. Further information on the ATSC standard may be found at the Internet web address “www.atsc.org”.  
         [0007]     Analog video may be encoded, or digitized, into a digital format conforming to the above standards through the use of an encoder. The set of standards that may be selectively implemented by the encoder during the digitization process are not limited to the above examples, and may include other standards such as MPEG-1, MPEG-2, real player, or AVI. As there are numerous digital media standards, and that number will likely only grow in the coming years, the need to generate content for a digital media system conforming to a variety of format standards will accordingly grow.  
         [0008]     Current methods of generating test content for a digital media system have not met the needs of designers and testers of digital media systems. For example, one common method for generating a suite of test content involves the recording of original analog video, often time something as mundane as a stationary clock, with a standard VHS video recorder, and digitizing the resulting analog recording into a digital format. While this method does not require the licensing of intellectual property, as digitizing a segment of broadcast television would, it is still riddled with problems. First, as with any digitized analog recording, the cause of any fluctuation in the quality of digital video presentation cannot be isolated to the digital media system, as the problem could have arisen in the quality of the original analog video. Second, digital test content should test the constants of the digital media system by being rich in color, sound, and moving objects. Such conditions are impractical to record in real life with a standard VHS video recorder. Third, without information identifying each frame of digital video, it is difficult to test scan operations as well as isolating delays in the digital media system in presenting digital video. While content in the video, such as the clock face, can be used to generally determine that a fist forward or rewind operation worked, it does not provide any frame specific information which is needed to accurately determine the success of a jump in time or isolate delays in presentation throughout the digital media system.  
         [0009]     Another approach in obtaining test content is to use a selection of pre-generated digital samples, such as those available on the Internet. However, in addition to encountering the problems mentioned above of licensing intellectual property, ad lacking fame specific information, these selections are typically of extremely short duration, which severely restricts their value in testing. Further, a suite of testing content should as much as possible exhaustively cover all the possible real world scenarios, which the small samplings of digital video available do not begin to address. Without varying the content in the digital content samples in the test suite, it is difficult to ensure that the fall spectrum of problems that a digital video server may encounter have been tested. Additionally, each of these selections of pre-generated digital samples is fixed in one digital format, and will not serve the need to test multiple digital formats.  
         [0010]     Given the inefficiencies of the cut method of digital content generation and testing there has been a long felt nee therefore, for a method or apparatus for generating original digital content that addresses the above needs for testing a digital media system. Such a method or system should allow one to configure the content of the digital video to rest all components of the digital video system as well as encode the digital video in a variety of digital formats.  
       SUMMARY OF THE INVENTION  
       [0011]     A method and apparatus for dynamically generating digital content is descried. According to a primary aspect of the invention, a configuration manager presents configuration options to a user corresponding to the content of a digital video presentation. The configuration manager records selected configuration options as user preferences. The user preferences are transferred to a media generator, which generates intermediate video content according to the received user preferences. The generated intermediate video content is then transferred to an encoder, which encodes the intermediate video content into a digital format specified in the user preferences.  
         [0012]     According to another aspect of the invention, the media generator may be operatively connected to a local storage, which houses digital picture stills, video, and sound. The configuration manager presents the user with the option to select digital picture stills, video, and sound housed in the local storage in generating the new digital content.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0013]     The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:  
         [0014]      FIG. 1  is a block diagram that illustrates a computer system upon which an embodiment of the invention may be implemented;  
         [0015]      FIG. 2  is a block diagram illustrating the functional components of a digital media generator according to an embodiment of the present invention; and  
         [0016]      FIG. 3  is a flow chart illustrating the steps of generating intermediate digital content.  
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0017]     In the following description, for the purposes of explanation, numerous specific details are set fort in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.  
         [0018]     In the following description, the various functions shall be discussed under topic headings that appear in the following order. 
        I. HARDWARE OVERVIEW     II. FACTIONAL OPERATION     III. CONFIGURATION MANAGER     IV. MEDIA GENERATOR     V. SOFTWARE ENCODER        
 
       I. Hardware Overview  
       [0024]      FIG. 1  is a block diagram that illustrates a computer system  100  upon which an embodiment of the invention may be implemented. Computer system  100  includes a bus  102  or other communication mechanism for communication information, and a processor  104  coupled with bus  102  for prong information. Computer system  100  also includes a main memory  106 , such as a random access memory (RAM) or other dynamic storage device, coupled to bus  102  for storing information and instructions to be executed by processor  104 . Main memory  106  also may be used for storing teary variables or other intermediate information during execution of instructions to be executed by processor  104 . Computer system  101  further includes a read only memory (ROM)  108  or other static storage device coupled to bus  102  for storing static information and instructions for processor  104 . A storage device  110 , such as a magnetic disk or optical disk, is provided and coupled to bus  102  for storing information and instructions.  
         [0025]     Computer system  100  may be coupled via bus  102  to a display  112 , such as a cathode ray tube (CRT), for displaying information to a computer user. An input device  114 , including alphanumeric and other keys, is coupled to bus  102  for communing information and command selections to processor  104 . Another typo of user input device is cursor control  116 , such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor  104  and for controlling cursor movement on display  112 . This input device typically has two degrees of freedom in two axes, a it axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.  
         [0026]     The invention is related to the use of computer system  100  for generating a digital video content. According to one embodiment of the invention, a digital video content is provided by computer system  100  in response to processor  104  executing one or more sequences of one or more instructions contained in main memory  106 . Such instructions may be read into main memory  106  from another computer-readable medium, such as storage device  110 . Execution of the sequences of instructions contained in main memory  106  causes processor  104  to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.  
         [0027]     The execution of the sequences of instructions required to practice the invention need not be performed by a single computer system  100 . The sequences of instructions required to practice the invention may be performed by a plurality of computer systems  100  connected to local network  122 , connected to the Internet  128 , or otherwise in data communication with each other.  
         [0028]     The term “computer-readable medium” as used herein refers to any medium that participates in providing instructions to processor  104  for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic dims, such as storage device  110 . Volatile media includes dynamic memory, such as main memory  106 . Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus  102 . Transmission media can also take the form of acoustic or light waves, such as those generated radio-wave and infra-red data communications.  
         [0029]     Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards, papertape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can rd.  
         [0030]     Various forms of computer readable media may be involved in caring one or more sequences of one or more instructions to processor  104  for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system  100  can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the in infra-red signal and appropriate circuitry can place the data on bus  102 . Bus  102  carries the data to main memory  106 , from which processor  104  retrieves and executes the instructions. The instructions received by main memory  106  may optionally be stored on storage device  110  either before or after execution by processor  104 .  
         [0031]     Computer system  100  also includes a communication interface  118  coupled to bus  102 . Communication interface  118  provides a two-way data communication coupling to a network link  120  that is connected to a local network  122 . For example, communication inter  118  may be an integrated services digit network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface  118  may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface  118  sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.  
         [0032]     Network link  120  typically provides data communication trough one or more networks to other data devices. For example, network link  120  may provide a connection through local network  122  to a host computer  124  or to data equipment operated by an Internet Service Provider (ISP)  126 . ISP  126  in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet”  128 . Local network  122  and Internet  128  both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link  120  and through communication interface  118 , which carry the digital data to and from computer system  100 , are exemplary forms of carrier waves transporting the information.  
         [0033]     Computer system  100  can send messages and receive data, including program code, through the network(s), network link  120  and communication interface  118 . In the Internet example, a server  130  might transmit requested program code for an application program through Internet  128 , ISP  126 , local network  122  and communication interface  118 .  
         [0034]     The received code may be executed by processor  104  as it is received, and/or stored in storage device  110 , or other non-volatile so for later execution. In this manner, computer system  100  may obtain application code in the form of a carrier wave.  
         [0035]     Having thus described the physical environment upon which the invention may be practiced, the functional overview of the invention will now be presented.  
       II. Functional Overview  
       [0036]      FIG. 2  is a block diagram illustrating a digital media generator  300  according to a principal aspect of the invention. As shown there a digital media generator  300  includes a configuration manager  310 , a media generator  320 , an optional local storage  330 , and an encoder  340 . A user  305  interacts with the digital media generator  300  through the configuration manger  310 . The configuration manger  310  is responsible representing the user  305  with a list of configuration options  350  which correspond to a manner in which a segment of customized digital video  365  may be configured. The configuration manger  310  exchanges data with the media generator  320  and encoder  340  to determine to composition of the list of configuration options  350 . The configuration manager  310  records the selection made by the user  305  from the list of configuration options  350  as user preferences  355 , which are transmitted to the media generator  320 .  
         [0037]     The media generator  320  is responsible for generating intermediate digital content  360  based upon the user preferences  355 . The media generator  320  may be coupled to local storage  330 . The local storage  330  stores digital sounds, still pictures, and video which are used by the media generator  320  in generating intermediate digital content  360 . Intermediate digital content  360  contains the desired content as selected by the user  305 , however, it has yet to be encoded in the desired digital format. After the media generator  320  generates intermediate digital content  360 , it is transferred, along with the user preferences  355 , to the encoder  340 . Intermediate digital content  360  may be transferred in real time, or asynchronously over a network link  120  or transferred via a portable storage device.  
         [0038]     The encoder  340  is responsible for generating the segment of customized digital video  365  from intermediate digital content  360  based upon the format specified in the use preferences  355 . The segment of customized digital video  365  may thereafter be used to test a digital media system.  
         [0039]     After had now described the functional overview of the digital media generator  300  in general, the configuration manager  310 , media generator  320 , and encoder  340  will now each be explained in finer detail in the following sections.  
       II. Configuration Manager  
       [0040]     As previously explained, the configuration manger  310  is responsible for presenting the user  305  with a list of configuration options  350  which correspond to a manner in which the segment of customized digital video  365  may be configured. A typical list of configuration options  350  include, but are not limited to: altering the background in the video, altering the number of objects displayed in the video, altering the shape of the objects displayed in the video, altering the color of the shapes in the video, altering the velocity of the shapes in the video, altering the trajectory of the shapes in the video, including a sound track or tone pattern in the video, and including a timestamp in the video.  
         [0041]     The user  305  may also indicate in the list of configuration options  350  time zones in which various parts of the system am simulated to operate. This information will be used by the media generator  320  to generate intermediate digital content  360  to test these conditions. Additionally, to aid in the scan operations, the list of configuration options  350  may include rate control markers, which alter the background color briefly at set time intervals.  
         [0042]     The list of configuration options  350  is generated by the configuration manager  310  based upon information received from the media generator  320  about the current capability of the media generator  320  to generate digital video and information received from the encoder  340  on the types available digital formats supported by the encoder  340 . The configuration manager  310  should be updated when there is a change in the capacity of either the media generator  320  to generate digital video or the encoder  340  to support new digital formats. For example, such a change in the media generator  320  may include additional sound or video information stored with the local store  330  that can be selected by the user  305  in generating intermediate digital content  360 .  
         [0043]     The list of configuration options  350  may be presented to the use through any graphical user interface, such as an Internet web page or those used by common personal computer software and operating systems. The list of configuration options  350  may be transmitted to the user over any communication medium, such as the Internet or a proprietary Intranet. The list of configuration options  350  may be saved by the user  305 , and at a later date be loaded, edited, and saved again.  
         [0044]     The configuration manager  310  records selections made by the user  305  from the list of configuration options  350  as user preferences  355 . The user preferences  355  are transmitted to the media generator  320  when the user  305  indicates that video is to be generated.  
       IV. Media Generator  
       [0045]     The media generator  320  is responsible for generating intermediate digital content  360  based upon the user preferences  355 . Intermediate digital content  360  is a series of uncompressed simple graphics (typically a series of bitmap files) that contain the characteristics indicated in the user preferences  355 . The intermediate digital content  360  may additionally contain sound if indicated in the user preferences  355 . The media generator  320  may optionally be operatively connected to a local storage  330 , which houses digital sounds, still pictures, and video. The local storage  330  can be any component well known to those in the art for storing electronic information, such as a database.  
         [0046]     As  FIG. 3  illustrates, the media generator  320  loads the user preferences  355 . Next, the digital sounds, still pictures, and video needed to satisfy the requirements of the user preferences  355  stored in local storage  330  are identified by the media generator  320 . Next, the media generator  320  loads the identified digital sounds, still pictures and video. Once loaded, the media generator  320  uses these digital sounds, still pit, and video to create the content arrangement specified in the user preferences  355 . In addition to incorporating the sounds, still pictures, and video from local storage  330 , the media generator can construct digital content in any of the well known methods in the art as changing background color, incorporating and manipulating texts generating shapes and figs, and other such functionality typical of graphics manipulation software packages, such as AutoCad by AutoDesk, Inc. or Corel Draw by Corel Corporation.  
         [0047]     The media generator  320  may also include functionality to synthesize or generate sound dynamically according to input from the user  305 . The configuration manager  310  may present the user  305  configuration options  350  to dynamically generate or record sound. The generated sound may be stored in the local storage  305  and used by the encoder  340  in the generation of the segment of customized digital video  365 .  
         [0048]     Finally, the content arrangement is saved by the media generator  320  as intermediate digital content  360 . The intermediate digital content  360  can be saved in any format that the encoder  340  can read, such as a series of bitmap files.  
         [0049]     The media generator  320  may use a system clock to place a visible timestamp in the intermediate digital content  360 . This would allow testers of the digital media system to visually inspect the digital video during normal play and seek operations to ensure proper functioning of the digital media system.  
         [0050]     According to one embodiment of the present invention, the intermediate digital content  360  is of a fixed length. The intermediate digital content  360  may be transferred to the encoder  340  immediately or saved for transfer at a later date. In another embodiment, the intermediate digital content  360  has no fixed length, and is continually generated by the media generator  320 . In his case the encoder  340  encodes the intermediate digital content  360  as it is received in real time.  
       V. Encoder  
       [0051]     The encoder  340  is responsible for generating the segment of customized digital video  365  from the segment of intermediate digital video  360  based upon the format specified in the user preferences  355 . This format may be of any form. For example, the encoded format may include MPEG-1, MPEG-2, MPEG-4, AVI, or QuickTime, the DVB standard, or the ATSC standard.  
         [0052]     A suitable encoder for use in the present invention is MegaPEG from Digigami, Inc. located physically in San Diego, Calif., and on the Internet at “www.digigami.com”. Another suitable encode for use in the present invention is Light Speed MPEG Encoder from Ligos Technology located physically in San Francisco, Calif., and on the Internet at “www.ligos.com”.  
         [0053]     In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made hereto without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.