Patent Publication Number: US-6701065-B1

Title: Methods and apparatus for buffering information prior to decoding

Description:
BACKGROUND OF THE INVENTION 
     This invention relates generally to the field of processing digital data used in the field of consumer electronics. More particularly, this invention relates to the demultiplexing and storage of digital data for use in audio visual equipment. 
     Digital information for use by audio-visual equipment is often transmitted in packets. Often the packets are organized according to one of the many standards that have been established by various technology standards committees. For example, MEPG-2 is a standard that is used in the telecommunications industry. The way in which the packets of information are handled is important, because it impacts the speed at which data can be transmitted and the resulting operations which can be performed on the audio visual data. For example, the ability to transmit a frame from a movie at a fast rate permits additional operations to be performed on the frame without impacting the speed at which the movie is shown. 
     One type of device used in the telecommunications or consumer electronics industry is the Digital Video Disc (DVD) player. DVD players in the past have relied on a buffer, known as a track buffer, to store data as the data is read from the DVD disk. The information is then stored in the buffer until each packet of DVD data can be parsed into its subcomponents. Once the data is parsed into its subcomponents, such as an audio portion, a video portion, a subpicture portion, and a navigation portion, it can be stored for later decoding and processing. 
     A drawback to prior DVD players has been that the track buffer was required prior to the data being parsed. This has been due to the fact that prior hardware designs have focused on the decoder speed as the determining factor in the hardware design. As a result, when data is read from a DVD disc, it must be stored until the decoder(s) are finished processing the preceding data. 
     A further drawback to such designs is that the additional component of a track buffer is required prior to the demultiplexing of data. This serves as an additional component which the data must travel through and which can possibly corrupt the data signal being read from the DVD disc. Furthermore, it adds to the cost and weight of the DVD player. 
     Hence, there is a need for a design that does not require the use of a track buffer for storage of data prior to the parsing of the data. Furthermore, there is a need for a simpler design that reduces the number of components for processing of DVD data. 
     SUMMARY OF THE INVENTION 
     The present invention provides a system to overcome these disadvantages and satisfy the needs highlighted by other designs. The system of the present invention provides an input to receive data from a drive of a DVD player; a demultiplexer to parse the data, without the need for a track buffer between the DVD disc and the demultiplexer. Furthermore, the invention is capable of receiving a data stream from a DVD disc, wherein the datastream is composed of audio data, video data, etc. all packetized into a standardized packet; demultiplexing the data stream to separate each of the data portions; while once again not requiring the use of a track buffer prior to the act of demultiplexing the data stream. 
     Further embodiments of the invention can be accomplished by using track buffer(s) coupled to the output of the demultiplexer and decoder(s) to decode each respective data portion. Separate track buffers can be used for each respective portion of data, e.g., an audio track buffer, a video track buffer, a subpicture track buffer, and a navigation track buffer. The track buffer(s) can be stored in random access memory, such as Synchronized Dynamic Random Access Memory (SDRAM). 
     In accordance with another embodiment of the invention, the decoding of data is synchronized to the speed of the DVD drive so as to eliminate the need for an additional data storage device. 
    
    
     Other and further advantages and features of the invention will be apparent to those skilled in the art from a consideration of the following description taken in conjunction with the accompanying drawings wherein certain methods of and installations for practicing the invention are illustrated. However, it is to be understood that the invention is not limited to the details disclosed but includes all such variations and modifications as fall within the&#39;spirit of the invention and the scope of the appended claims. 
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of a circuit for demultiplexing and decoding data received from a digital source, such as a DVD disc. 
     FIG. 2 is a block diagram of a conventional circuit used for demultiplexing and decoding data received from a digital source. 
     FIG. 3 is an example of a packet of data used in the telecommunications industry for conveying a representation of audio/visual information. 
     FIG. 4 is a block diagram of a circuit used in a DVD player for processing of digital data read from a disc drive. 
     FIG. 5 is a typical end-user setting where audio/visual information is received, including a television, a DVD player and a set-top box. 
     FIGS. 6 a  and  6   b  are a flowchart showing the process of obtaining audio/visual information, parsing it into its sub-components, and processing the respective sub-components. 
    
    
     DESCRIPTION OF THE SPECIFIC EMBODIMENTS 
     Referring now to the figures and more particularly to FIG. 1, a circuit  100  showing one embodiment of the invention can be seen. The circuit in FIG. 1 is a circuit that could be used in many different telecommunications devices that process data received from a digital source. However, it is considered to have particular applicability for use in DVD players that play DVD discs. Such a DVD player is shown in FIG.  5 . FIG. 5 shows a television and DVD player  500 . Also shown in FIG. 5 is a set-top box  504  which receives packetized data from a cable television company. The set-top box is yet another source of digital data with which the circuit shown in FIG. 1 could be used. 
     FIG. 1 shows a DVD player  104  that is coupled to a demultiplexer  108 . The demultiplexer  108  receives a digital data stream from the DVD player  104  for parsing. The output of the demultiplexer  108  is coupled to track buffer(s). While it is not necessary to use several track buffers, four track buffers are shown in FIG.  1 . In the example demonstrated in this patent, the digital data stream is made up of an audio portion which corresponds to the sound for a DVD program, a video portion which corresponds to the picture of the DVD program, a subpicture portion which corresponds to a subpicture element, and a navigation portion containing navigation information. Consequently, an audio track buffer  112 , a video track buffer  116 , a subpicture track buffer  120  and a navigation track buffer  124  are shown coupled to the output of the demultiplexer. Each of these track buffers is shown coupled to a corresponding decoder, namely audio decoder  128 , video decoder  132 , subpicture decoder  136 , and navigation decoder  140 . 
     Comparing the circuit of FIG. 1 to the conventional circuit  200  used in conventional DVD players highlights how the circuit in FIG. 1 does not utilize a track buffer  206  located between the DVD drive  204  and the demultiplexer  208 . Thus the. circuit in FIG. 1 is advantageous in that it does not require the extra component or memory of track buffer  206 . This is advantageous at least for the reason that it is less expensive, reduces the need for extra memory, and/or simplifies the circuitry. Furthermore, it reduces the possibility of an error being introduced into the data stream by inputting and outputting the data into track buffer  206 . 
     One advantage of the invention is that it provides for faster processing of data received from a DVD disc. The demultiplexer  108  is operated at a speed that is synchronized to the speed of the output from the DVD disc. Hence, as data is output from the DVD disc, the data can be parsed by the demultiplexer and stored in the respective buffers for decoding. Thus, the need for a track buffer located between the DVD disc and the demultiplexer is removed when the demultiplexer can operate at a rate that does not result in a backup of data. In contrast, conventional designs were based on the speed of a decoder. Hence, when a slow decoder was selected, the demultiplexer did not have to operate quickly enough to keep pace with the output from the DVD disc drive. Consequently, there has been a need for the large track buffer in conventional designs. As noted above, this need is eliminated when the demultiplexer is operated at a speed that keeps pace with the output of the DVD drive. 
     The track buffers shown in FIG. 1 can be individual buffer elements or memory. Preferably, however, the track buffers  112 ,  116 ,  120 , and  124  are disposed in RAM such as Synchronized Dynamic Random Access Memory (SDRAM). 
     Turning now to FIG. 4 an additional embodiment of the invention can be seen. In the circuit  400  of FIG. 4, a DVD drive  404  is shown coupled to a DVD drive servo  408 . The output of the DVD drive is coupled to an error checking and correction (ECC) component  407 . The ECC component can be a separate component or part of a complete system on a chip design. The output of the ECC component in FIG. 4 is connected to a circuit  420 . This particular circuit is shown having four processors. However, it should be understood that other implementations might use more or fewer processors. A coded data interface (not shown) accepts data from the ECC. A demultiplexer processor  432  receives the data stream and demultiplexes the data stream. The demultiplexed data is parsed into its respective components such that an audio portion is stored in the audio buffer  451 , a video portion is stored in the video buffer  452 , a subpicture portion is stored in a subpicture buffer  453  and a navigation portion is stored in a navigation buffer  454 . 
     In addition to the demultiplexer processor  432 , circuit  420  also is shown as comprised of an audio decoder processor  424 , a video decoder processor  436 , and a subpicture and navigation decoder processor  428 . These processors are coupled to memory  450  to allow the respective data portions to be accessed and processed, e.g., decoded and output for broadcast, etc. 
     FIG. 4 shows in dashed lines an element which has been eliminated from the design. Namely, the conventional track buffer  406  which corresponds to track buffer  206  in FIG. 2, is unnecessary for the design of FIG.  4 . Hence, the dashed lines indicate that it is not present in the circuit. However, this highlights an advantage of this embodiment of the invention in that the need for the track buffer  406  has been removed by this design. 
     In addition to the use of the invention with a DVD player, it could also be used in other environments where a stream of data is received. For example, it could be used with a set-top box for receiving data in MPEG format. Similarly, it could be used in receiving data from a computer network, such as the Internet. Other uses will be understood by those of ordinary skill in the art, as well. 
     FIG. 3 shows an example of how data can be packaged from an output of a DVD drive. Data packet  300  is shown as having a sector block  304  followed by an audio packet header block  308  and audio data payload  312 . The sector block  304  identifies where on the DVD disc the data is located. This is useful in processing the data and checking for errors. The audio packet header block  308  indicates the start of the audio data. Finally, the audio data payload contains the content information for an audio signal. Similarly, a second sector block  316  follows audio data payload  312 . This is then followed by video packet header block  320  and video data payload  324 . This information serves functions corresponding to the respective audio blocks. Following the video information is a third sector block  328 , a subpicture packet header block  332 , and a subpicture data payload  336 . Finally, the navigation data completes the packet. It contains a sector block  340 , a navigation packet header block  344 , and a navigation data payload  348 . 
     The operation of one embodiment of the invention can be seen with reference to FIGS. 6 a  and  6   b  and FIG.  4 . FIG. 6 a  shows that a data packet, such as data packet  300  shown in FIG. 3, is read from a data source  604 . As mentioned earlier, this data source could be one of many different sources; however, for purposes of this example a DVD disc is used. Hence a DVD drive reads the data from the DVD disc and generates a data stream  608 . The data stream is then supplied to a demultiplexer  612  to have the data stream demultiplexed into its component parts. Prior to the demultiplexing, however, the data stream can be checked for errors and corrected, as shown by element  407  in FIG.  4 . 
     To accomplish the demultiplexing, a processor such as processor  432  can be used. This processor operates at a speed fast enough to keep pace with the rate of the data stream. Hence, by utilizing a processor to serve as the demultiplexer in place of a separate demultiplexer hardware component, the demultiplexer can be operated at the speed of the data source. Thus, the software for the processor can be programmed such that the processor operates at a speed that accommodates the flow of data from the data source, e.g., the DVD drive. This type of operation would be understood by those of ordinary skill in the art as demultiplexing the data in real time or “on the fly” such that no data backlog develops. 
     The demultiplexer then demultiplexes the data packet  616 . In FIG. 4, this is performed by processor  432 . Referring to FIG. 3, it can be seen that where that type of data packet is used that the data is divided into four portions, namely the payload data for audio, video, subpicture, and navigation. To achieve the demultiplexing of this data packet, the processor  432  pulls out the sector data for each payload. It performs an error check by confirming that the sector data corresponds with the location that the data is expected to come from. For example, it confirms that if the audio data in the prior packet came from sector “X” that the audio data in the packet being processed came from sector “X+1.” The processor then strips off the header information and stores the payload data in a memory buffer, such as in memory  450  in FIG.  4 . The memory should preferably be memory with a short access time such as SDRAM. This allows for the stored data to be accessed and processed quickly by a decoder. This process is repeated for each of the payload portions. Hence, the audio data is stripped down such that the audio payload can be stored in an audio track buffer  451 . The video, subpicture and navigation data is similarly parsed such that it is stored in track buffers  452 ,  453 , and  454 . Therefore, the data portions are output  620  to their respective storage locations. 
     Following the demultiplexing of the data packet, the data portions are received at the track buffers  624  corresponding with each data portion. In turn, they are then stored  628 . 
     Once the data has been demultiplexed into its respective data portions and stored, it is decoded  632 . It should be understood that storage is not a necessity if the decoder can operate at a speed that keeps pace with the output from the demultiplexer. In FIG. 4, processor  424  serves to decode the audio data portion stored in memory location  451 . Typically, data will be encoded or compressed; hence, the processor  424  will perform the algorithms that provide for decoding and/or decompression of the data such that the data can be broadcast through an output device. This additional manipulation of the data beyond decoding the data is considered to be the processing of the data  636  as shown in FIG. 6 b.    
     In addition to processor  424 , a video processor  436  acts as a decoder to decode the video data stored in memory location  452 . The separation of the audio processing and the video processing allows for fast manipulation of these data portions. The audio processor is able to focus on the processing routines required to decode and process the audio material while the video processor is able to focus on the routines required to decode and process the video material. A third processor  428  is utilized to decode and process the subpicture and navigation data. Again, it is envisioned that fewer or more processors could be utilized to accomplish this processing of the data. However, the combination of the subpicture processing with the navigation data processing, serves as a preferred tradeoff between processing capabilities and cost, size, and additional circuitry. In addition to the decoding and processing of the navigation and subpicture data, processor  428  can be utilized to perform system functions for the integrated circuit  420 . For example, it can be used to accomplish timing management, BIOS, GUI, etc. Further information can be seen by reference to “DVD Demystified” by Jim Taylor, McGraw Hill publisher, copyright 1998, the content of which is hereby incorporated by reference in its entirety for all that it discloses. 
     In addition to embodiments where the invention is accomplished by hardware, it is also noted that these embodiments can be accomplished through the use of an article of manufacture comprised of a computer usable medium having a computer readable program code embodied therein, which causes the enablement of the functions and/or fabrication of the hardware disclosed in this specification. For example, this might be accomplished through the use of hardware description language (HDL), register transfer language (RTL), VERILOG, VHDL, or similar programming tools, as one of ordinary skill in the art would understand. Therefore, it is desired that the embodiments expressed above also be considered protected by this patent in their program code means as well. 
     It is also noted that many of the structures and acts recited herein can be recited as means for performing a function or steps for performing a function, respectively. Therefore, it should be understood that such language is entitled to cover all such structures or acts disclosed within this specification and their equivalents. 
     It is thought that the apparatuses and methods of the embodiments of the present invention and many of its attendant advantages will be understood from this specification and it will be apparent that various changes may be made in the form, construction and arrangement of the parts thereof without departing from the spirit and scope of the invention or sacrificing all of its material advantages, the form herein before described being merely exemplary embodiments thereof.