Abstract:
An image processor that can reduce in capacity of a B-picture memory is disclosed. The B-picture memory stores luminance data and color-difference data of decoded image data included in a top field and a bottom field of a B picture. The B-picture memory is controlled by a memory controller which independently controls a memory area storing the luminance data and another memory area storing the color-difference data in the memory. Preferably, the memory controller releases the memory area storing the luminance data included in one of the top and bottom fields that has been displayed.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    1. Field of the Invention  
           [0002]    The present invention generally relates to image processors, and in particular to a memory control method and system in an image processor which can output decoded moving pictures while decoding compression-encoded data including B-picture data conforming to MPEG (Moving Picture Experts Group) standards.  
           [0003]    2. Description of the Related Art  
           [0004]    There has been proposed an image decoding system which can outputs decoded images in real time while decoding a stream including MPEG encoded video and audio data. Moving-picture encoded data in the stream includes consecutive picture groups each including one I-picture (Intra Picture: intra-frame encoded picture) followed by a plurality of pictures each being one of P-picture (Predictive Picture; inter-frame predictive encoded picture) and B-picture (Bidirectional Picture: bidirectional predictive encoded picture). The I-picture can be decoded without referring to other pictures and the following pictures can be decoded with reference to other pictures.  
           [0005]    In MPEG-2 aiming at general-purpose encoding which does not limit an application field, a B-Picture is composed of two or more slice layers, and each slice layer is formed from arbitrary numbers of macroblocks. Each macroblock is composed of a luminance signal Y consisting, for example, of 16×16 pixels, and color-difference signals Cb and Cr each consisting, for example, of 8×8 pixels  
           [0006]    In a conventional image processor, the picture of a macroblock which consists of luminance signal Y and the color-difference signals Cb and Cr is decoded per slice. A macro block line is divided into 2 sorts of fields, the even-number field (top field) and odd-number field (bottom field).  
           [0007]    For example, there have been two methods for converting B-picture which has been decoded according to the 4:2:0 format and stored in a memory into 4.2:2 format to display it. One method is to generate a color-difference signal lacking in displaying from the color-difference signal of the same field. The other method is to generate the color-difference signal also using the color-difference signal of another field in the same frame. The latter method is called a progressive-C method.  
           [0008]    According to a conventional image processor which decodes B-picture using the Progressive-C method, as shown in FIG. 1A, an available index control memory  11 , a B-picture memory  12 , and a display index control memory  13  are used to manage the picture processing.  
           [0009]    The B-picture memory  12  is divided into m slices to which index numbers 0 to m−1 (here, m=6) are assigned, respectively. Each slice is a memory area including data corresponding to a luminance signal Y for 16 lines and a color-difference signal for 8 lines. The index numbers are used to manage the presence and absence of data.  
           [0010]    The available index control memory  11  stores an index number indicating an available memory area to which data can be written. The available index memory  11  uses a write pointer WP and a read pointer RP for address management.  
           [0011]    The display index control memory  13  stores a display index number indicating which memory area of the B-picture memory  12  the image data to be displayed is located in. The display index control memory  13  has the capacity of at least two frames to store the display index corresponding to a frame picture while decoding another frame picture.  
           [0012]    In the case of decoding a frame picture, each time 32 lines for two slices have been decoded, two index numbers are read from the available index control memory  11 . At the same time, the read pointer RP of the available index control memory  11  is incremented by two. Thereafter, the read index numbers are stored as display index numbers onto the display index control memory  13 .  
           [0013]    In the case of decoding a field picture, each time top or bottom 16 lines for two slices have been decoded, one index number is read from the available index control memory  11 . At the same time, the read pointer RP of the available index control memory  11  is incremented by one. Thereafter, the read index number is stored onto the display index control memory  13 .  
           [0014]    In the case of displaying, the display index number indicating which memory area of the B-picture memory  12  the slice data to be displayed is located in is read from the display index control memory  13 . The read display index number is used to calculate the location of the memory area storing the slice data to be displayed and the slice data to be displayed is read out from the B-picture memory  12 . At the time when two-slice data has been read, the index number corresponding to data which is no longer necessitated is stored as an available index number onto the available index control memory  11  and then the write pointer WP is incremented by one.  
           [0015]    In the case of displaying B-picture data in the Progressive-C method, the field data that has been displayed needs only the color-difference signal. However, according to the conventional image processor as described above, it is necessary to hold the luminance signal that is no longer necessitated after displayed.  
           [0016]    As shown in FIG. 1B, at the time when starting the bottom of the B0 frame displaying, the luminance data in the top of the B0 frame remains stored in the B-picture memory  12 . Therefore, a memory capacity more than necessary is needed.  
         SUMMARY OF THE INVENTION  
         [0017]    An object of the present invention is to provide an image processor and a memory control therefor, which can achieve a reduction in capacity of a B-picture memory in a system that a color-difference signal is generated with reference to another color-difference signal in B-picture.  
           [0018]    The inventor has found that the memory areas corresponding to luminance signals can be released by independently controlling luminance data and color-difference data in each slice of B-picture data.  
           [0019]    According to the present invention, an image processor includes a decoder for decoding moving-picture compression-encoded data including B picture data conforming to MPEG (Moving Picture Experts Group) standards; a memory for storing luminance data and color-difference data of decoded image data included in a top field and a bottom field of a B picture; a display for displaying pictures based on decoded image data; and a memory controller for independently controlling a memory area storing the luminance data and another memory area storing the color-difference data in the memory.  
           [0020]    The memory controller may release the memory area storing the luminance data included in one of the top and bottom fields that has been displayed. When a total of released memory areas has reached at least a predetermined amount, the memory controller may write decoded image data onto the released memory areas.  
           [0021]    As described above, according to the present invention, luminance data and color-difference data are independently managed in each slice of B-picture data. Therefore, in the case where the color-difference data of the B picture is displayed with reference to other color-difference data of another field in the same frame, the memory areas corresponding to luminance signals can be released, resulting in a reduction in capacity of a B-picture memory. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0022]    [0022]FIG. 1A is a diagram showing an example of a conventional B-picture memory control method;  
         [0023]    [0023]FIG. 1B is a time chart showing an example of the processes of decoding and displaying in the conventional B-picture memory control method;  
         [0024]    [0024]FIG. 2 is a block diagram showing a memory control system according to the present invention;  
         [0025]    [0025]FIG. 3A is a schematic diagram showing an available index control memory for explanation of an operation of the memory control system;  
         [0026]    [0026]FIG. 3B is a schematic diagram showing a display index control memory for explanation of the operation of the memory control system;  
         [0027]    [0027]FIG. 3C is a schematic diagram showing a B-picture memory for explanation of the operation of the memory control system;  
         [0028]    [0028]FIG. 4 is a schematic diagram showing a first step in a memory control operation according to a first embodiment of the present invention;  
         [0029]    [0029]FIG. 5 is a schematic diagram showing a second step of the operation of the first embodiment;  
         [0030]    [0030]FIG. 6 is a schematic diagram showing a third step of the operation of the first embodiment;  
         [0031]    [0031]FIG. 7 is a schematic diagram showing a fourth step of the operation of the first embodiment;  
         [0032]    [0032]FIG. 8 is a schematic diagram showing a fifth step of the operation of the first embodiment;  
         [0033]    [0033]FIG. 9 is a schematic diagram showing a sixth step of the operation of the first embodiment;  
         [0034]    [0034]FIG. 10 is a schematic diagram showing a first step of a memory control operation according to a second embodiment of the present invention;  
         [0035]    [0035]FIG. 11 is a schematic diagram showing a second step of the operation of the second embodiment; and  
         [0036]    [0036]FIG. 12 is a schematic diagram showing a third step of the operation of the second embodiment. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0037]    Referring to FIG. 2, an image processing system is composed of a processor  101  and a decoder  102  which are connected to a first memory  103  for I-picture and P-picture, a second memory  104  for I-picture and P-picture, and a third memory  105  for B-picture through a data bus  106  and a control bus  107 . The processor  101  uses an available index control memory  108  and a display index control memory  109  to control the B-picture memory  105 . Further, the processor  101  is connected to a display  110 , which is further connected to the memories  103 - 105  through the data bus  106 .  
         [0038]    The image processing system has a function of displaying decoded image data on the display  110  in real time while the decoder  102  decoding a stream of MPEG compression-encoded data of picture groups including an I picture followed by a plurality of B pictures using the memories  105 ,  108 , and  109 . More specifically, the available index control memory  108  outputs available index data D AV  to the processor  101  and receives release index data D RL  from the processor  101 . The display index control memory  109  outputs display index data D DSP  to the processor  101  and receives stored index data D ST  from the processor  101 . The display  110  receives decoded picture data from the data bus  106  to display the picture under the control of the processor  101 .  
         [0039]    The B-picture memory  105  is divided into m slices to which index numbers 0 to m−1 are assigned, respectively. In the case of frame picture decoding, each slice stores the following data:  
         [0040]    1. four lines of lower-half data (Y0, Y1) of a luminance signal Y in top field;  
         [0041]    2. four lines of upper-half data (Y2, Y3) of the luminance signal Y in top field;  
         [0042]    3. four lines of color-difference signal C in top field;  
         [0043]    4. four lines of lower-half data (Y0, Y1) of a luminance signal Y in bottom field;  
         [0044]    5. four lines of lower-half data (Y0, Y1) of a luminance signal Y in bottom field; and  
         [0045]    6. four lines of color-difference signal C in bottom field.  
         [0046]    In the case of field picture decoding, each slice of the B-picture memory  105  stores the following data:  
         [0047]    1. four lines of lower-half data (Y0, Y1) of a luminance signal Y of lower-half slice in top or bottom field;  
         [0048]    2. four lines of upper-half data (Y2, Y3) of the luminance signal Y of lower-half slice in top or bottom field;  
         [0049]    3. four lines of color-difference signal C of lower-half slice in top or bottom field;  
         [0050]    4. four lines of lower-half data (Y0, Y1) of a luminance signal Y of upper-half slice in top or bottom field;  
         [0051]    5. four lines of upper-half data (Y2, Y3) of the luminance signal Y of upper-half slice in top or bottom field; and  
         [0052]    6. four lines of color-difference signal C of upper-half slice in top or bottom field.  
         [0053]    The available index control memory  108  stores an index number indicating an available memory area to which data can be written. The available index control memory  108  uses a write pointer WP and a read pointer RP for address management.  
         [0054]    The display index control memory  109  stores a display index number indicating which memory area of the B-picture memory  105  the image data to be displayed is located in.  
         [0055]    In the case of displaying, the display index data D DSP  is read from the display index control memory  109 . The processor  101  uses the read display index number to calculate the location of the memory area storing the slice data to be displayed and the slice data to be displayed is read out from the B-picture memory  105 . At the time when slice data has been read, the index number corresponding to data which is no longer necessitated is stored as an available index number onto the available index control memory  108  and then the write pointer WP is incremented by one.  
         [0056]    Hereinafter, the control method according to the first embodiment will be described in the case of decoding frame picture. As an example, the case where a B picture consists of pixels of 128 (16×8) lines is taken.  
         [0057]    Referring to FIG. 3A, the available index control memory  108  is divided into 36 areas having addresses numbered in sequence from 0 to 35. The write pointer WP and the read pointer RP are incremented depending on the number of available indexes as will be described.  
         [0058]    Referring to FIG. 3B, the display index control memory  109  is divided into eight slices numbered in sequence from 0 to 7 and each slice is mainly divided into three top areas and three bottom areas. Each of the top and bottom areas consists of an first area for storing a display index corresponding to lower-half data (Y0, Y1) of a luminance signal Y, a second area for storing a display index corresponding to the upper-half data (Y2, Y3) of the luminance signal Y, and a third area for storing a display index corresponding to color-difference signal Cb, Cr.  
         [0059]    Referring to FIG. 3C, the B-picture memory  105  has a capacity for six slices, each of which is divided into 6 areas. In other words, the B-picture memory  105  consists of 36 (6×6) areas numbered in sequence from 0 to 35.  
         [0060]    As shown in FIGS.  3 A- 3 C, just after having been reset, the processor  101  initializes the available index control memory  108  such that release index data DRL is transferred to the available index control memory  108  and is written onto each of the memory areas 0-35. At this time, the B-picture memory  105  and the display index control memory  109  both remains in an available state and the write pointer WP and the read pointer RP are set at an address of 0.  
         [0061]    Referring to FIG. 4, the processor  101  reads available index data D AV  from the available index control memory  108  and the obtained six indexes (here, 0-5) are written as display indexes onto the slice having the address of 0 in the display index control memory  109 . At the same time, the processor  101  outputs a decoding start instruction to the decoder  102  to start the slice #0 of the B-picture memory  105  decoding.  
         [0062]    The decoded image data is transferred from the decoder  102  to the B-picture memory  105  through the data bus  106 . In the B-picture memory  105 , the respective memory areas indicated by the indexes 0-2 store the lower-half data (Y0, Y1) of a luminance signal Y in slice #0 of top, the lower-half data (Y2, Y3) of the luminance signal Y in slice #0 of top, and data of the color-difference signal Cb, Cr in slice #0 of top. Thereafter, the respective memory areas indicated by the indexes 3-5 store the lower-half data (Y0, Y1) of a luminance signal Y in slice #0 of bottom, the lower-half data (Y2, Y3) of the luminance signal Y in slice #0 of bottom, and data of the color-difference signal Cb, Cr in slice #0 of bottom. In the available index control memory  108 , the read pointer RP is incremented by six to be moved from the address of 0 to an address of 6.  
         [0063]    The decoding steps as described above are repeatedly performed for the slices #0-#4, and thereby the decoded image data of slices #0 to #4 are stored in the memory areas indicated by the index numbers 0 to 29 in the B-picture memory  105 . At this time, the read pointer RP of the available index control memory  108  is set at an address of 30.  
         [0064]    Referring to FIG. 5, when the decoding of the slice #5 is started, the processor  101  reads available index data D AV  from the available index control memory  108  and the obtained six indexes (here, 30-35) are written as display indexes onto the slice having an address of 5 in the display index control memory  109 . The decoded image data is transferred from the decoder  102  to the B-picture memory  105  through the data bus  106  as described above. In the available index control memory  108 , the read pointer RP is incremented by six. Therefore, the read pointer RP is moved from the address of 30 to an address of 35 and then back to the address of 0, which results in that the read pointer RP is set back to the same address as the write pointer WP.  
         [0065]    When the read pointer RP and the write pointer WP become set at the same address, the processor  101  determines that the B-picture memory  105  is full, and stops the decoding.  
         [0066]    While the decoding is stopped, the processor  101  transfers decoded image data of the top data of slice #0 from the B-picture memory  105  to the display  110  through the data bus  106 . The display  110  uses the decoded image data received from the B-picture memory  105  to display it on screen.  
         [0067]    Referring to FIG. 6, when the displaying has been completed, the top data associated with the luminance signal Y of the slice #0 stored in the memory areas of indexes 0 and 1 are no longer necessitated. Therefore, the processor  101  releases the memory areas of the indexes 0 and 1. More specifically, as shown in FIG. 6, the release index data D RL  is written as new available indexes 0 and 1 onto memory areas having the addresses of 0 and 1 in the available index control memory  108 . In this case, the write pointer WP is incremented by two to be set at an address of 2. This causes two available indexes to be ensured in the available index control memory  108 . As described before, however, six indexes are required to decode one slice of the B picture. Therefore, the decoding remains stopped.  
         [0068]    As shown in FIG. 7, when the displaying of the top data in the slice #1 has been completed, the top data associated with the luminance signal Y of the slice #1 stored in the memory areas of indexes 6 and 7 are no longer necessitated. Therefore, the processor  101  releases the memory areas of the indexes 6 and 7. More specifically, as shown in FIG. 7, the release index data D RL  is written as new available indexes 6 and 7 onto memory areas having the addresses of 2 and 3 in the available index control memory  108 . In this case, the write pointer WP is incremented by two to be set at an address of 4. This causes a total of four available indexes to be ensured in the available index control memory  108 . Since six indexes are required to decode one slice of the B picture, the decoding remains stopped.  
         [0069]    As shown in FIG. 8, when the displaying of the top data in the slice #2 has been completed, the top data associated with the luminance signal Y of the slice #2 stored in the memory areas of indexes 12 and 13 are no longer necessitated. Therefore, the processor  101  releases the memory areas of the indexes 12 and 13. More specifically, as shown in FIG. 8, the release index data D RL  is written as new available indexes 12 and 13 onto memory areas having the addresses of 4 and 5 in the available index control memory  108 . In this case, the write pointer WP is incremented by two to be set at an address of 6. This causes a total of six available indexes to be ensured in the available index control memory  108 . Since the number of available indexes reaches six, the decoding is restarted.  
         [0070]    As shown in FIG. 9, the processor  101  reads available index data D AV  from the available index control memory  108  and the obtained six indexes (here, 0, 1, 6, 7, 12, and 13) are written as display indexes onto the slice having an address of 6 in the display index control memory  109 . The decoded image data of the slice #6 is transferred from the decoder  102  to the B-picture memory  105  through the data bus  106  and is stored onto the memory areas indicated by indexes of 0, 1, 6, 7, 12, and 13.  
         [0071]    In the B-picture memory  105 , more specifically, the respective memory areas indicated by the indexes of 0 and 1 store the lower-half data (Y0, Y1) of a luminance signal Y in slice #6 of top and the lower-half data (Y2, Y3) of the luminance signal Y in slice #6 of top. The memory area indicated by the index of 6 stores data of the color-difference signal Cb, Cr in slice #6 of top. The memory area indicated by the index of 7 stores the lower-half data (Y0, Y1) of a luminance signal Y in slice #6 of bottom. The memory area indicated by the index of 12 stores the lower-half data (Y2, Y3) of a luminance signal Y in slice #6 of bottom. The memory area indicated by the index of 13 stores data of the color-difference signal Cb, Cr in slice #6 of bottom.  
         [0072]    In the available index control memory  108 , the read pointer RP is incremented by six. Therefore, the read pointer RP is moved from the address of 0 to an address of 6, which results in that the read pointer RP is set to the same address as the write pointer WP. As described before, when the read pointer RP and the write pointer WP become set at the same address, the processor  101  determines that the B-picture memory  105  is full, and stops the decoding.  
         [0073]    Hereinafter, the control method according to a second embodiment of the present invention will be described in the case of decoding frame picture using a method other than the Progressive-c method. It is assumed that the case where a B picture consists of pixels of 128 (16×8) lines is taken and the B-picture memory  105 , the available index control memory  108 , and the display index control memory  109  are the same as in the case of the first embodiment.  
         [0074]    As described in FIG. 5, when the read pointer RP and the write pointer WP become set at the same address, the processor  101  determines that the B-picture memory  105  is full, and stops the decoding. While the decoding is stopped, the processor  101  transfers decoded image data of the top data of slice #0 from the B-picture memory  105  to the display  110  through the data bus  106 . The display  110  uses the decoded image data received from the B-picture memory  105  to display it on screen.  
         [0075]    Referring to FIG. 10, when the displaying has been completed, the top data of the slice #0 stored in the memory areas of indexes 0-2 are no longer necessitated. Therefore, the processor  101  releases the memory areas of the indexes 0-2. More specifically, as shown in FIG. 10, the release index data D RL  is written as new available indexes 0-2 onto memory areas having the addresses of 0-2 in the available index control memory  108 . In this case, the write pointer WP is incremented by three to be set at an address of 3. This causes three available indexes to be ensured in the available index control memory  108 . As described before, however, six indexes are required to decode one slice of the B picture. Therefore, the decoding remains stopped.  
         [0076]    As shown in FIG. 11, when the displaying of the top data in the slice #1 has been completed, the top data of the slice #1 stored in the memory areas of indexes 6-8 7 are no longer necessitated. Therefore, the processor  101  releases the memory areas of the indexes 6-8. More specifically, as shown in FIG. 11, the release index data D RL  is written as new available indexes 6-8 onto memory areas having the addresses of 3-5 in the available index control memory  108 . In this case, the write pointer WP is incremented by three to be set at an address of 6. This causes a total of six available indexes to be ensured in the available index control memory  108 . Since the number of available indexes reaches six, the decoding is restarted.  
         [0077]    As shown in FIG. 12, the processor  101  reads available index data D AV  from the available index control memory  108  and the obtained six indexes (here, 0-2 and 6-8) are written as display indexes onto the slice having an address of 6 in the display index control memory  109 . The decoded image data of the slice #6 is transferred from the decoder  102  to the B-picture memory  105  through the data bus  106  and is stored onto the memory areas indicated by indexes of 0-2 and 6-8.  
         [0078]    In the B-picture memory  105 , more specifically, the respective memory areas indicated by the indexes of 0-2 store the lower-half data (Y0, Y1) of a luminance signal Y in slice #6 of top, the lower-half data (Y2, Y3) of the luminance signal Y in slice #6 of top, and data of the color-difference signal Cb, Cr in slice #6 of top. The respective memory areas indicated by the indexes of 6-8 store the lower-half data (Y0, Y1) of a luminance signal Y in slice #6 of bottom, the lower-half data (Y2, Y3) of a luminance signal Y in slice #6 of bottom, and data of the color-difference signal Cb, Cr in slice #6 of bottom.  
         [0079]    As described above, according to the present invention, a luminance signal and a color-difference signal are independently managed in each slice of B-picture data. Therefore, the memory areas corresponding to luminance signals can be released when a next line in the B picture is decoded, resulting in a reduction in capacity of a B-picture memory.