Apparatus and method for decoding data

Abstract: Data decoding apparatus decodes data reproduced from a record medium (1) and stored in a memory (7). Since decoding requires a sufficient amount of data to be stored in memory, especially when the data is, for example, predictively encoded, a system controller (21) inhibits previously read data from being overwritten in the memory (7). Thus, when a reverse reproduction operation is suddenly initiated during a forward reproduction operation, a sufficient amount of data is reserved in the memory (7) for decoding the data in the reverse direction. Similarly, the system controller (21) inhibits the memory (7) from writing over previously read data during reverse reproduction and a sufficient amount of data is reserved for decoding when forward reproduction is resumed.

Description: This invention relates to decoding data from a record medium. More particularly, but not exclusively, the invention relates to decoding moving image data recorded in the form of digital data and, more especially, but again not exclusively, to decoding data reproduced from the record medium in a reverse reproduction mode. Figure 1A shows a previously proposed data decoding apparatus which reproduces digital data from an optical disk 1 into video and audio signals. The digital data is stored on the optical disk in a format conforming to the MPEG (moving pictures experts group) standard. According to that standard, a series of frames making up a moving picture are processed as a group of pictures called a GOP (Fig. 1B). The frames are grouped in order to perform predictive encoding, i.e., predicting values for corresponding pixels in different frames and subtracting the prediction value from a target frame, thereby compressing the picture data. More specifically, the MPEG technique includes three types of predictively encoded picture frames: an intra-frame coded picture (I), which is not predictively encoded and is usually the first or last picture frame in a group of pictures; a bidirectionally predictive coded picture (B), which is encoded using one preceding and one following frame, i.e., forward and backward prediction; and, a forward predictive coded picture (P), which is encoded using a preceding frame, i.e., forward prediction. That is, each B-frame requires two additional frames and each P-frame requires one additional frame for decoding and, as a result, the total number of frames required for decoding becomes multiplied. Therefore, a sufficient number of frames in each group are required to be read into a ring buffer memory 7 in order to decode the predictively encoded frames. While the foregoing satisfactorily decodes the predictively encoded frames in a forward direction, it does not provide a sufficient amount of picture frames in the reverse direction. This technique reproduces the frames using an optical pickup 2. The reproduced frames are then demodulated by a demodulator 3 to remove the carrier signal from the frame signals. A sector detector 4 detects sector addresses recorded at each sector of the optical disk and couples them to a ring buffer controller 6. The frame data is passed through the sector detector 4 to a succeeding ECC circuit 5 (error checking and correcting circuit) which error-checks the data supplied from the sector detector (by using, for example, parity error detection) and error-corrects the frame data by use of redundant bits recorded on the optical disk. The error-corrected frame data is supplied to the ring buffer memory 7 and a track jump judgment circuit 18 causes the tracking servo circuit 17 to signal the pickup to advance to the next sector (to retrieve more picture frames). In this manner, frame data is stored in groups of pictures (GOP1, GOP2, GOP3 ... GOPn) in the ring buffer memory 7 as shown in Fig. 1B. The sector detector 4 also outputs a sector number abnormality signal (either directly or through the ring buffer controller 6) to the track jump judgment circuit 18 when the sector address data cannot be detected or there is discontinuity between detected sector addresses. When this occurs, the track jump judgment circuit 18 judges that the pickup 2 must jump to a different sector to maintain continuity of the frame data retrieved from the last sector. Accordingly, the tracking servo circuit 17 receives the appropriate command signal from the track jump judgment circuit 18 and causes the pickup 2 to jump the appropriate number of sectors to the correct sector. The ECC circuit 5 error-corrects the frame data and supplies the same to the ring buffer memory 7. However, should the ECC circuit 5 be unable to error correct the data, the ECC circuit 5 sends a signal (either directly or through the ring buffer controller 6) to the track jump judgment circuit 18 commanding the tracking servo circuit 17 to jump the pickup 2 from sector A to the previous sector B, for example (Fig. 2). Thus, the frame data is re-read by the pickup 2 and the ECC circuit 5 has another chance at error-correcting the frame data. The ring buffer memory 7 is a buffer (such as, for example, a FIFO (first-in-first-out) memory) and should be adequately filled, but not overflown, for efficient use of the buffer. Moreover, a sufficient number of picture frames should be stored in the ring buffer memory 7 in order to adequately decode the predictively encoded picture frames since the frames were encoded by reference to other frames. The ring buffer memory is filled with frame data in the manner discussed above. As the ring buffer memory 7 becomes full, the ring buffer controller 6 inhibits the flow of frame data by sending a signal to the track jump judgment circuit 18 commanding the tracking servo circuit 17 to jump the pickup 2 to a previous sector (Fig. 2). The video decoder 14 and the audio decoder 16 decode the frame data at a variable rate and, therefore, send code request signals (via buffers 13, 15, respectively, and the multiplexed data separator 8) to the ring buffer controller 6 to cause the frame data to be output at an appropriate rate. As frame data is reproduced (output) from the ring buffer memory, the ring buffer controller allows the pickup (via the track jump judgment circuit) to advance to the next sector and retrieve more data to be input to the ring buffer memory. The ring buffer controller 6 regulates the flow of frame data input and output to the ring buffer memory 7 using a write pointer (WP) and a read pointer (RP). As shown in Fig. 1B, groups of pictures (GOP1, GOP2, GOP3) are presently stored in the ring buffer memory. As the picture frames in each group of pictures are read out from the ring buffer memory, the read pointer RP is advanced counter-clockwise along the picture frames. Meanwhile, the ring buffer controller determines that the ring buffer memory is not sufficiently filled and allows frame data to be written to the ring buffer memory as a group of pictures (GOPn), advancing the write pointer WP counter-clockwise as the frames are written. As can be seen from Fig. 1B, the system shown in Fig. 1A stores a sufficient amount of frames to decode the predictively encoded data in the forward direction. The multiplex data separator 8 separates header information, indicating whether the data is video or audio data, from the frame data. A separator controller 11 controls a switch 10 according to the header information to switch the output between a video code buffer 13 and an audio code buffer 15, such that the video and audio data are sent to the appropriate decoders. The buffered data is then decoded by video or audio decoders 14, 16 and supplied to terminals 91, 92, respectively. Thus, the frames are successfully decoded in a forward direction. When reverse playback is desired, however, the system shown in Fig. 1A is not able to efficiently decode predictively encoded data. As shown in Fig. 1B, new picture groups (GOPn) in ring buffer memory 7 have been written over previously read picture frames during forward playback. However, when the reverse mode is desired, the read pointer RP reverses direction and begins reading picture frames in a direction towards the write pointer WP. In the case where the write pointer WP has already written over (or advanced past) a portion of the group of pictures to be reverse reproduced (as with the case of GOP1), there is not a sufficient amount of picture frames stored in the ring buffer memory to decode the predictively encoded data. As a result, reverse reproduction is not successful in the previously proposed device. A digital data reproducing apparatus is described in EP-A-0,522,853 and comprises a ring buffer memory for storing data read out from a record medium. A track jump judging circuit produces, when the amount of data stored in the ring buffer memory reaches a predetermined value set in advance, a track jumping instructions to cause a pickup to jump back by one track distance on the record medium. First and second aspects of the invention are set forth in claims 1 and 5 hereof, respectively. According to an embodiment of the invention, there is provided a system controller to ensure that a sufficient amount of picture frame data in a memory (for example a ring buffer memory as mentioned above) exists during reverse reproduction. As data is read from the memory, new data is written into the areas in which the previously read data were stored. The system controller inhibits the writing of new data over the previously read data to preserve a sufficient amount of picture frame data in the memory for reverse reproduction. Such an arrangement is advantageous in efficiently reproducing pictures of high quality in both forward and reverse directions. The invention will now be further described, by way of illustrative and nonlimiting example, with reference to the accompanying drawings, in which: Fig. 1A is a block diagram showing a previously proposed data decoding device; Fig. 1B is a conceptual diagram of a ring buffer memory describing how write and read pointers are employed; Fig. 2 is a schematic diagram showing the manner in which a reproducing position of a pick up is jumped; Fig. 3 is a block diagram showing a data decoding apparatus embodying the invention; and Figs. 4A to 4E are useful in showing the manner in which write and read pointers are operated in the device embodying the invention. Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views, a data decoding apparatus embodying the invention will be described with reference to Fig. 3. The present invention is applicable to a variety of decoding applications. It is especially applicable to any data decoding apparatus employing reverse reproduction, and is particularly advantageous when applied to data decoding apparatus that reproduces predictively encoded picture frames. As discussed, predictively encoded picture frames according to the MPEG standard are compressed by subtracting data predicted to exist in a target picture frame by comparing the target picture data to data of other picture frames. Thus, a large number of encoded picture frames are needed for decoding. The MPEG picture frames are reproduced from the optical disk 1 and stored as data in ring buffer memory 7 in groups of pictures (Figs. 4A-4E). The ring buffer controller 6 controls data input and output to the ring buffer memory by inhibiting the data received by the pickup 2 and allowing data to be output upon a code request from the video and audio decoders 14, 16. The ring buffer controller causes the pickup (via the track jump judgment circuit 18 and the track servo circuit 17) to jump to an appropriate sector as dictated by the sector detector 4 and the ECC circuit 5. The multiplex data separator 8 extracts a header from the data to determine whether the data is video or audio data and controls a switch 10 to output the data to a video or audio code buffer 13, 15, appropriately. The buffered data is output to the video and audio decoders 14, 16 at a rate set by the decoders and the predictively encoded data is decoded. The present apparatus includes a system controller 21 that regulates the operation of the ring buffer controller 6. As data is output (read) from the ring buffer memory 7, the ring buffer controller allows data to be input (written) over the previously read data in the ring buffer memory. The system controller 21 determines how far the data input to the ring buffer memory may overwrite previously read data to ensure that a sufficient amount of frame data exists to successfully execute decoding in the reverse direction. As an example of the operation of the present apparatus, reference is now made to Figs. 4A-4E. During forward reproduction, the ring buffer controller fills the ring buffer memory with data in groups of pictures (GOP1, GOP2 and GOP3) as shown in Fig. 4A. The ring buffer controller keeps track of the position of the last-recorded frame using a write-pointer WP, which advances as each frame of data is written into the ring buffer memory. Since a ring buffer memory is logically configured as a continuous loop, such that the beginning of the buffer is connected to the end of the buffer, the write pointer WP advances to the beginning of the buffer after data is written into the last physical address of the buffer. Fig. 4A depicts the situation where the buffer is almost full and the write pointer WP indicates that new data (GOPn) is about to overwrite the first group of pictures GOP1. Meanwhile, the video and audio decoders 14, 16 send code request signals to the ring buffer controller 6 requesting that data be output (read) from the ring buffer memory 7. As the data is output, the ring buffer controller advances the read pointer RP along the group of pictures as shown in Fig. 4A so that the previously read data can be overwritten. It will be recalled that in Fig. 1A, the ring buffer controller 6 was allowed to continuously write the new group of pictures GOPn over the previously read pictures of GOP1. This was problematic because the first group of pictures GOP1 was still being read out from the ring buffer memory (as indicated by the read pointer RP). During a reverse reproduction at this point, the GOP1 pictures were read in a clockwise direction (i.e., opposite to the direction shown by the read pointer RP) and a sufficient amount of picture frames were not available because the ring buffer controller 6 had been allowed to write over a portion of the first group of pictures GOP1. The system controller 21 maintains a sufficient amount of picture frames in the ring buffer memory during a forward reproduction mode in the event that reverse reproduction should suddenly be desired. In the preferred embodiment, a write-inhibit pointer SP is assigned by the system controller to the leading edge of the group of pictures currently being read (i.e., GOP1, Fig. 4A). The write-inhibit pointer SP indicates to the ring buffer controller that writing should not be advanced past the address corresponding to the write-inhibit pointer SP. Should reverse reproduction be initiated while a group of pictures GOP1 is being read in the forward direction, the previously read portion of GOP1 is preserved in the ring buffer memory and a sufficient amount of picture data is available. To continue with reproduction in the forward mode, the system controller 21 advances the write-inhibit pointer SP to the leading edge of the next group of pictures GOP2 as shown in Fig. 4B when the first group of pictures GOP1 have been completely read. At this time, the ring buffer controller proceeds to write the new group of pictures GOPn over the first group of pictures GOP1 as shown in Fig. 4C. As before, the write-inhibit pointer SP prevents the ring buffer controller from advancing a writing operation over the group of pictures currently being read (GOP2) and a sufficient amount of picture frames are reserved in the buffer for reverse reproduction. In the preferred embodiment, the write-inhibit pointer SP advances to the beginning of each group of pictures, thus maintaining the entire group of pictures in memory for reverse reproduction. However, the write-inhibit pointer SP may be positioned anywhere so long as there is a sufficient amount of data in memory to reproduce the picture frames in a reverse reproduction mode. This provides the apparatus with the flexibility to minimize the amount of memory required for storing previously read data. When a reverse reproduction mode is suddenly initiated after forward reproduction, the ring buffer controller 6 causes data to be read out of the ring buffer memory 7 in a reverse direction (as indicated by the clockwise direction of the read pointer RP in Fig. 4D). At this time, the write pointer WP is repositioned by the system controller 21 to the end of the second group of pictures GOP2. The ring buffer controller then executes reproduction of the picture frames from the optical disc in a reverse direction, thus writing the groups of pictures into the ring buffer memory in a descending order. When the second group of pictures GOP2 is finished being read out from the ring buffer memory 7 in the reverse direction (Fig. 4D), the read pointer RP will be advanced to the end of the first group of pictures GOP1 and the write-inhibit pointer SP is repositioned at the beginning of the next group of pictures (i.e., GOP1, Fig. 4E). Writing in the reverse direction into the ring buffer memory will continue to fill the ring buffer memory until the write pointer comes full circle to the write-inhibit pointer SP as shown in Fig. 4C. As in the forward direction, the write-inhibit pointer SP will be advanced only after the last group of pictures is completely read out of the ring buffer memory. Thus, the write-inhibit pointer also serves to ensure that the picture frames of the currently read group of pictures are not overwritten by a reverse-mode writing operation. When reverse reproduction has ended and forward reproduction is reinitiated, the read pointer RP reverses direction and again advances in the clockwise direction. Since the write-inhibit pointer inhibited the previously read frames from being overwritten in reverse reproduction, there is a sufficient number of frames for reproduction when forward reproduction is resumed. At this time, the write pointer WP is repositioned at the beginning of the group of pictures GOP0 and a writing operation overwrites GOP0 with the next group of pictures. Thus, reading resumes in the forward direction smoothly and without pause. With the arrangement described above, a sufficient amount of picture frames, especially for the purposes of decoding MPEG pictures, is maintained in the ring buffer memory for both a forward and reverse reproduction mode. While the present invention is most advantageously employed for decoding MPEG picture frames, the invention may also be applied to other decoding apparatus, and especially to any decoding apparatus employing reverse reproduction. The present invention also is not limited to reproducing data from optical discs, but, of course, is applicable to reproducing data from other types of record media. Therefore, numerous modifications and variations of the above-described embodiment of the invention are contemplated and it is to be understood that, within the scope of the appended claims, the invention may be practiced otherwise than as specifically described herein by way of illustrative example.

Claims: An apparatus for decoding groups of pictures conforming to the MPEG standard reproduced from a record medium (1) comprising: memory means (7) logically configured in a continuous loop for storing said groups of pictures reproduced from the record medium (1); first control means (6) for causing said data reproduced from the record medium (1) to be written into and read from said memory means (7), wherein, said first control means (6), during forward reproduction, causes frames of each group of pictures to be read around said continuous loop of said memory means (7); decoding means (14, 16) for decoding data read from said memory means (7); and second control means (21) for inhibiting, during forward reproduction, the first control means (6) from overwriting a respective group of pictures being currently read from said memory means (7) until all frames of said respective group of pictures are read from said memory means (7), such that all of said frames in said respective group of pictures being currently read are available in said memory means (7) when reverse reproduction is initiated. The apparatus for decoding data according to claim 1 wherein the second control means (21) comprises: write-inhibit pointer means for storing a memory address demarking the beginning of said respective group of pictures currently being read from the memory means (7), such that the second control means (21) inhibits said first control means (6) from writing said new groups of pictures around said continuous loop beyond the memory address indicated by the write-inhibit pointer means. The apparatus for decoding data of claim 2, wherein the first control means (6) comprises: read pointer means for incrementing a memory address of a frame of said respective group of pictures currently being read from the memory means (7); and write pointer means for incrementing a memory address of a frame of a new group of pictures reproduced from said record medium (1) currently being written over frames of said groups of pictures previously read from said memory means (7). The apparatus for decoding data of claim 3, wherein the memory means (7) is a ring buffer memory. A method for decoding MPEG predictively-encoded picture-frame data recorded on a record medium (1) from groups of pictures comprising the steps of: reproducing the picture-frame data from said record medium (1); writing said picture-frame data as new groups of pictures reproduced from said record medium (1) in a memory (7) logically configured in a continuous loop; reading, during forward reproduction, a respective group of pictures from said memory (7) in response to a request from a decoder (14, 16); decoding said respective group of pictures read from said memory (7); and inhibiting, during said forward reproduction, the memory (7) from writing over said respective group of pictures currently being read from said memory (7) until all frames of said respective group of pictures are read from said memory (7), such that all of said frames in said respective group of pictures being currently read are available in said memory (7) when reverse reproduction is initiated. The method for decoding according to claim 5, further comprising the steps of: incrementing a read pointer to an address in said memory (7) pointing to said respective group of pictures currently being read from said memory (7) in forward reproduction; and incrementing a write pointer pointing to an address in said memory (7) where said new groups of pictures are to be written during said forward reproduction. The method for decoding according to claim 6, wherein the step of inhibiting comprises advancing a write-inhibit pointer to an address in said memory (7) pointing to a beginning of said respective group of pictures currently being read as picture-frame data from said memory (7) in said forward reproduction; and preventing picture-frame data from overwriting the data of said respective group of pictures currently being read by inhibiting the write pointer from advancing beyond the write-inhibit pointer in said memory (7). The method for decoding according to claim 7, further comprising the step of: repositioning the write pointer to an end of the respective group of pictures currently being read from said memory (7) as picture-frame data when a reverse reproduction is initiated, thereby allowing said new groups of pictures to be written in said memory (7) immediately after said respective goup of pictures. The method for decoding according to claim 8, further comprising the step of: positioning the read pointer to an address in said memory (7) pointing to said respective group of pictures currently being read from said memory (7) in said reverse reproduction. The method for decoding according to claim 9, further comprising the step of reproducing from said record medium (1) and writing to said memory (7), during said reverse reproduction, those groups of pictures preceding said respective group of pictures which were previously overwritten in said memory (7) during forward reproduction. The method for decoding according to claim 10, further comprising the step of inhibiting writing, during reverse reproduction, beyond the beginning of said respective group of pictures in said memory (7) such that when reverse reproduction ends and forward reproduction is initiated, all of said frames of said respective group of pictures being read during reverse reproduction are available in said memory (7) upon reinitiating forward reproduction.

Inventors: NITTA HAJIME, OTA KIYOSHI, NITTA, HAJIME, OTA, KIYOSHI, NITTA, HAJIME, C/O INT. PROP. DEP. SONY CORP., OTA, KIYOSHI, C/O INT. PROP. DEP. SONY CORP.
Applicants: SONY CORP, SONY CORPORATION
Application year: 1996
Main classification: H04N9
IPC codes: H03M7, G11B20, H04N5, H04N9