Abstract:
A data processing apparatus for decoding a bitstream includes a channel decoder, a demultiplexer and a plurality of decoders. The channel decoder is used for generating an encoded bitstream data from a received channel data and storing the encoded bitstream data to a buffer, wherein the encoded bitstream contains a plurality types of sectors. The demultiplexer is used for rearranging the stored encoded bitstream data according to the plurality of types and storing sectors corresponding to the same bitstream type in respective regions in the buffer. The decoders are used for decoding the sectors corresponding to the bitstream types, the decoders retrieving the rearranged data from the buffer according to corresponding one of the plurality of types.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a continuation of the co-pending U.S. application Ser. No. 12/471,408, which is a continuation of U.S. application Ser. No. 11/279,253 (which is a continuation-in-part of U.S. application Ser. No. 10/376,443 (expressly abandoned during examination)). The entire contents of these related applications are incorporated herein by reference. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    The invention relates to optical disc player systems and a method for controlling a decoding unit to read data from a memory device, more particularly to an optical disc player system and a method of controlling a decoding unit in the optical disc player system to read encoded bitstream data from a buffer memory, and an optical disc player system capable of saving the memory bandwidth between a bitstream demultiplexer and a memory. 
         [0004]    2. Description of the Prior Art 
         [0005]      FIG. 1  illustrates a conventional DVD player system  1  that includes a channel decoder  11  for reading and error-correcting the encoded bitstream data from a disc, a track buffer  13  connected to the channel decoder  11  via a memory interface  15  for storing error-corrected bitstream data from the channel decoder  11 , a source decoder  12  connected to the channel decoder  11  for decoding the bitstream data from the channel decoder  11 , and a source buffer  14  connected to the source decoder  12  via a memory interface  16  for storing decoded video and audio data from the source decoder  12 . In an actual design, the channel decoder  11  and the source decoder  12  are implemented using two separate chips, thereby resulting in a relatively high cost. In order to reduce costs, there is provided a combined chip integrated with the aforesaid functions of the channel and source decoders. 
         [0006]      FIG. 2  illustrates another DVD player system  2  that includes a decoding unit  21  having a channel decoder  11 ′ and a source decoder  12 ′. The integrated decoding unit  21  performs functions the same as those in the system of  FIG. 1 , and a combined buffer memory  22  connected to the decoding unit  21  via a memory interface  23 . Referring to  FIG. 3 , the buffer memory  22  includes a track buffer  221  for storing data from a disc, and a bitstream buffer  222  for storing demultiplexed bitstream data processed by a bitstream demultiplexer  24  and decoded video and audio data for playback. The decoding unit  12 ′ includes an audio decoder  121 , a video decoder  122 , a sub-picture decoder  123  and a navigation decoder  124 . During a decoding procedure, the bitstream demultiplexer  24  reads encoded bitstream data from the track buffer  221  of the buffer memory  221  via the memory interface  23 . After error-correcting and demultiplexing of the encoded bitstream data, the demultiplexed bitstream data is transferred to the bitstream buffer  222  of the buffer memory  22  via the memory interface  23 . The decoders  121 ,  122 ,  123 ,  124  read the demultiplexed bitstream data stored in the bitstream buffer  222  of the buffer memory  22  for decoding via the memory interface  23 . As such, the buffer memory  22  in the conventional system  2  of  FIG. 2  must provide a large bandwidth for channel decoding and source decoding, thereby resulting in relatively high costs and power consumption. 
       SUMMARY OF THE INVENTION 
       [0007]    Therefore, an object of the present invention is to provide an optical disc player system and a method of controlling a decoding unit in the optical disc player system to read encoded bitstream data from a buffer memory that can reduce the memory bandwidth requirement so as to result in relatively low costs and power consumption. Another object of the present invention is to provide an optical disc player system capable of saving the memory bandwidth between a bitstream demultiplexer and a memory. 
         [0008]    According to a first aspect of the present invention, a data processing apparatus for decoding a bitstream is disclosed. The data processing apparatus includes a channel decoder, a demultiplexer and a plurality of decoders. The channel decoder is used for generating an encoded bitstream data from a received channel data and storing the encoded bitstream data to a buffer, wherein the encoded bitstream contains a plurality types of sectors. The demultiplexer is used for rearranging the stored encoded bitstream data according to the plurality of types and storing sectors corresponding to the same bitstream type in respective regions in the buffer. The decoders are used for decoding the sectors corresponding to the bitstream types, the decoders retrieving the rearranged data from the buffer according to corresponding one of the plurality of types. 
         [0009]    According to a second aspect of the present invention, a method for decoding a bitstream has the following steps: (a) generating an encoded bitstream data from a received channel data and storing the encoded bitstream data to a buffer, wherein the encoded bitstream contains a plurality types of sectors; (b) rearranging the stored encoded bitstream data according to the plurality of types and storing sectors corresponding to the same bitstream type in respective regions in the buffer; (c) retrieving the rearranged data from the buffer according to corresponding one of the plurality of types; and (d) decoding the sectors corresponding to the bitstream types by a plurality of decoders. 
         [0010]    These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0011]    Other features and advantages of the present invention will become apparent in the following detailed description of the preferred embodiment and the variations thereof with reference to the accompanying drawings, of which: 
           [0012]      FIG. 1  is a schematic circuit block diagram of a conventional DVD player system; 
           [0013]      FIG. 2  is a schematic circuit block diagram of another conventional DVD player system; 
           [0014]      FIG. 3  is a schematic circuit block diagram illustrating a bitstream demultiplexing operation in the conventional DVD player system of  FIG. 2 ; 
           [0015]      FIG. 4  is a schematic circuit block diagram illustrating the preferred embodiment of an optical disc player system according to the present invention; 
           [0016]      FIG. 5  is a flow chart illustrating a method of controlling a decoding unit in the preferred embodiment to read encoded bitstream data from a buffer memory; 
           [0017]      FIG. 6  is a schematic circuit block diagram of an optical disc player system according to another embodiment of the present invention; and 
           [0018]      FIG. 7  is a schematic circuit block diagram of an optical disc player system according to another embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0019]    Referring to  FIG. 4 , the preferred embodiment of an optical disc player system  3 , such as a DVD player, according to the present invention is shown to include a buffer memory  33 , a header scanning controller  34 , a decoding unit  32 , and a reading pointer recorder  35 . 
         [0020]    The buffer memory  33 , such as a track buffer, stores encoded bitstream data that is read by a disc reading module  31  from an optical disc (not shown) and that is error-corrected by a channel decoder  30 . The encoded bitstream data is divided into a plurality of sectors, each of which includes a data portion, and a header portion for indicating a bitstream type of the data portion. The header portion includes a sector ID, a pack header and a packet header. 
         [0021]    The header scanning controller  34  is connected to the buffer memory  33  via a memory interface  36 . 
         [0022]    The decoding unit  32  is connected to the header scanning controller  34 , and includes a channel decoder  321  and a set of different data decoders  322  including audio decoder  322 A, video decoder  322 B, sub-picture decoder  322 C, and navigation decoder  322 D. Each of the data decoder is used to decode data with a specific bitstream type. Each of the data decoders  322 A,  322 B,  322 C,  322 D is capable of sending a bitstream request for reading encoded bitstream data stored in the buffer memory  33  via the header scanning controller  34 . In this embodiment, the decoding unit  32  includes an audio decoder  322 A for decoding audio data, a video decoder  322 B for decoding video data, a sub-picture decoder  322 C, and a navigation decoder  322 D. 
         [0023]    The reading pointer recorder  35  is connected to the header scanning controller  34  and stores four reading pointers associated with the data decoders  322 A,  322 B,  322 C, and  322 D. The four reading pointers are audio reading pointer, video reading pointer, sub-picture reading pointer, and navigation reading pointer respectively. 
         [0024]    The header scanning controller  34  reads one of the sectors stored in the buffer memory  33  according to the reading pointer from the reading pointer recorder  35  that is associated with one of the decoders  322 A,  322 B,  322 C,  322 D that sent out the bitstream request when the header scanning controller  34  receives the bitstream request from said one of the data decoders  322 A,  3228 ,  322 C,  322 D. 
         [0025]    The header scanning controller  34  transfers the data portion of said one of the sectors that is being read from the buffer memory  33  to the data decoder ( 322 A,  322 B,  322 C, or  322 D) that sent out the bitstream request when the header portion of said one of the sectors that is being read from the buffer memory  33  indicates a bitstream type corresponding to that of the bitstream request, and the header scanning controller  34  also enables the reading pointer recorder  35  to adjust the reading pointer to point to a next one of the sectors stored in the buffer memory  33  after reading of said one of the sectors has been completed. 
         [0026]    Furthermore, the header scanning controller  34  enables the reading pointer recorder  35  to adjust the reading pointer associated with said one of the decoders  322 A,  322 B,  322 C,  322 D that sent out the bitstream request to point to a next one of the sectors stored in the buffer memory  33 , and reads the header portion of the next one of the sectors when the bitstream type indicated by the header portion of said one of the sectors being read from the buffer memory  33  does not correspond to that of the bitstream request. 
         [0027]    For example, when the video decoder  322 B sends out a bitstream request for video data, the header scanning controller  34  receives the bitstream request, reads the sector which is a video bitstream type (a video sector) according to the video reading pointer of the reading pointer recorder  35 . After the current video sector has been read from the buffer memory  33 , the header scanning controller  34  enables the reading pointer recorder  35  to move the video reading pointer to a next video sector in the buffer memory  33 . The similar procedure also applies to the audio decoder  322 A, the sub-picture decoder  322 C, and the navigation decoder  322 D. 
         [0028]    It is noted that each of the sectors stored in the buffer memory  33  is defined by the header scanning controller  34  to be in a used state when the data portion thereof has been completely read, and to be in an unused state when otherwise. The header scanning controller  34  enables the reading pointer recorder  35  to adjust the four reading pointers to point the next audio sector, next video sector, next sub-picture sector, or next navigation sector in the buffer memory  33  that is in the unused state when the bitstream type indicated by the header portion of said one of the sectors being read from the buffer memory  33  does not correspond to that of the current bitstream request. 
         [0029]    Referring to  FIG. 5 , there is shown a flow chart to illustrate how the header scanning controller  34  controls the decoding unit  32  in the optical disc player system  3  of the preferred embodiment to read the bitstream data from the buffer memory  33 . In step  41 , the header scanning controller  34  determines whether one of the decoders  322 A,  322 B,  322 C,  322 D sends out the bitstream request. For example, the header scanning controller  34  detects that the audio decoder  321  sends out the bitstream request for decoding audio data. In step  42 , the header scanning controller  34  reads one of the sectors stored in the buffer memory  33  according to a reading pointer that is associated with said one of the decoders  322 A,  322 B,  322 C,  322 D that sends out the bitstream request (for example, the audio decoder  322 A). In step  43 , the header scanning controller  34  determines whether a portion of said one of the sectors being read from the buffer memory  33  is the header portion. In step  45 , when the portion of said one of the sectors is the header portion, the header scanning controller  34  determines whether the header portion of said one of the sectors that is being read from the buffer memory  33  indicates a bitstream type corresponding to that of the bitstream request. In step  46 , the header scanning controller  34  transfers the data portion of said one of the sectors that is being read from the buffer memory  33  to said one of the decoders  322 A,  322 B,  322 C,  322 D that sends out the bitstream request (for example, the audio decoder  322 A) upon determining in step  45  that the bitstream type indicated by the header portion of said one of the sectors corresponds to that of the bitstream request, and enables the reading pointer recorder  35  to adjust the reading pointer to point to a next one of the sectors stored in the buffer memory  33  after reading of said one of the sectors has been completed. It is noted that, in this case, the reading pointer recorder  35  adjusts the reading pointer to point to the next one of the sectors stored in the buffer memory  33  that is in the unused state. Furthermore, when it is determined in step  43  that the portion of said one of the sectors being read from the buffer memory  33  is not the header portion, the flow proceeds to step  46 . In step  47 , the header scanning controller  34  determines whether the data portion of said one of the sectors that is being read from the buffer memory  33  has been read completely. When the data portion of said one of the sectors that is being read from the buffer memory  33  has yet to be read completely, the flow proceeds back to step  41 . In step  48 , the header scanning controller  34  defines said one of the sectors to be in the used state when the data portion of said one of the sectors that is being read from the buffer memory  33  has been read completely, and the flow proceeds back to step  41 . In step  49 , the header scanning controller  34  enables the reading pointer recorder  35  to adjust the reading pointer associated with said one of the decoders  322 A,  322 B,  322 C,  322 D (for example, the audio decoder  322 A) that sends out the bitstream request to point to the next one of the sectors stored in the buffer memory  33 , and reads the header portion of the next one of the sectors when the bitstream type indicated by the header portion of said one of the sectors being read from the buffer memory  13  is determined in step  45  as not corresponding to that of the bitstream request. The flow then proceeds back to step  45 . It is noted that, in this case, the reading pointer recorder  35  adjusts the reading pointer to point to the next one of the sectors stored in the buffer memory  33  that is in the unused state. In step  44 , when none of the decoders  321 ,  322 ,  323 ,  324  sent out a bitstream request, the header scanning controller  34  determines whether decoding of the decoding unit  32  ends. If no, the flow proceeds back to step  41 . 
         [0030]    Accordingly, in the optical disc player system  3  of the present invention, the header scanning controller  34  can control the decoding unit  32  to read encoded bitstream data from the buffer memory  33  through the memory interface  36  such that the buffer memory  33  has a relatively low memory bandwidth requirement, thereby resulting in relatively low costs and power consumption. An object of the invention is thus met. 
         [0031]      FIG. 6  is a schematic circuit block diagram of an optical disc player system  6  according to another embodiment of the present invention. The optical disc player system  6  includes the disc reading module  31  mentioned above. The optical disc player system  6  further includes a channel decoder  60  for generating encoded bitstream data S 2  according to an optical disc readout signal S 1  generated by the disc reading module  31 . In this embodiment, the channel decoder  60  is a composite module  60  including the following components (not shown): a DVD/CD digital signal processor (DSP) for decoding the optical disc readout signal S 1 ; a DVD/CD servo controller for performing servo control while the optical disc player system  4  accessing the optical disc; and a DVD/CD error correction code (ECC) decoder for performing ECC correction to generate the encoded bitstream data S 2 . 
         [0032]    As shown in  FIG. 6 , the optical disc player system  6  further includes a buffer memory  63  for storing the encoded bitstream data S 2 . The encoded bitstream data is divided into a plurality of sectors, each of which includes a data portion, and a header portion for indicating a bitstream type of the data portion. Wherein, the header portion includes a sector ID, a pack header and a packet header. The optical disc player system  6  further includes: a memory interface  66 ; a header scanning controller  64  coupled to the buffer memory  63  via the memory interface  66  for scanning the header portion and accessing the encoded bitstream data stored in the buffer memory  63 ; and a bitstream demultiplexer  65  coupled to the header scanning controller  64  for rearranging the encoded bitstream data stored in the buffer memory  63  according to the bitstream type for continuously storing sectors corresponding to the same bitstream type in the same region within the buffer memory  63 . 
         [0033]    Please note, the header scanning controller  64  of this embodiment is a simplified variation of the header scanning controller  34  shown in  FIG. 4  since the header scanning controller  64  does not need an additional component such as the reading pointer recorder  35  shown in  FIG. 4  while the bitstream demultiplexer  65  is rearranging the encoded bitstream data stored in the buffer memory  63 . As the header scanning controller  64  is capable of scanning the header portion to determine the bitstream type of the corresponding data portion, the bitstream demultiplexer  65  does not need to read a data portion of an unwanted bitstream type. The bitstream demultiplexer  65  simply reads data of a specific bitstream type and continuously store the data of the specific bitstream type in a specific region within the buffer memory  63 . As a result, the memory bandwidth between the bitstream demultiplexer  65  and the buffer memory  63  is saved. 
         [0034]    The optical disc player system  6  further includes a decoding unit  62  coupled to the buffer memory  63 . In this embodiment, the decoding unit  62  is a MPEG decoding unit  62  including an audio decoder  62 A for decoding audio data, a video decoder  62 B for decoding video data, a sub-picture decoder  62 C, and a navigation decoder  62 D. Each of the decoders  62 A,  62 B,  62 C, and  62 D is used to decode data with a specific bitstream type and is capable of reading encoded bitstream data stored in the buffer memory  63  by direct memory access (DMA). Please note, the channel decoder  60 , the decoding unit  62 , the bitstream demultiplexer  65 , and the header scanning controller  64  are integrated into a single chip  602 . 
         [0035]      FIG. 7  is a schematic circuit block diagram of an optical disc player system  7  according to another embodiment of the present invention. The embodiment shown in  FIG. 7  is similar to the embodiment shown in  FIG. 6  with exceptions described as follows. As shown in  FIG. 7 , the header scanning controller  74  of this embodiment is a Central Processing Unit (CPU)  74  executing a specific program code  74   c , and the channel decoder  60 , the decoding unit  62 , and the bitstream demultiplexer  75  are integrated into a single chip  702 . 
         [0036]    While the present invention has been described in connection with what is considered the most practical and preferred embodiment, it is understood that this invention is not limited to the disclosed embodiments but is intended to cover various arrangements included within the spirit and scope of the broadest interpretation so as to encompass all such modifications and equivalent arrangements. 
         [0037]    Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.