WO2001080567A1 - Decoder and decoding method, recorded medium, and program - Google Patents

Decoder and decoding method, recorded medium, and program Download PDF

Info

Publication number
WO2001080567A1
WO2001080567A1 PCT/JP2001/003204 JP0103204W WO0180567A1 WO 2001080567 A1 WO2001080567 A1 WO 2001080567A1 JP 0103204 W JP0103204 W JP 0103204W WO 0180567 A1 WO0180567 A1 WO 0180567A1
Authority
WO
WIPO (PCT)
Prior art keywords
decoding
slice
stream
decoder
buffer
Prior art date
Application number
PCT/JP2001/003204
Other languages
English (en)
French (fr)
Inventor
Mamoru Ueda
Koki Kanesaka
Takumi Ohara
Takeshi Yamamoto
Kazuhiro Mizuno
Toshikazu Morita
Original Assignee
Sony Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corporation filed Critical Sony Corporation
Priority to DE2001630180 priority Critical patent/DE60130180T2/de
Priority to CA2376871A priority patent/CA2376871C/en
Priority to EP01921837A priority patent/EP1187489B1/en
Publication of WO2001080567A1 publication Critical patent/WO2001080567A1/ja
Priority to US12/197,574 priority patent/US20090010334A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the present invention relates to a decoding device, a decoding method, and a recording medium, and more particularly to a 4: 2: 2P capable of real-time operation with a feasible circuit scale.
  • the present invention relates to a decoding device and a decoding method capable of realizing a video decoder compatible with @HL, and a recording medium.
  • MPEG2 Moving Picture Coding Experts Group / Moving Picture Experts Group2
  • ISO / IEC International Standards Organization / International Electrotechnical Commission
  • ITU-T Internationa 1 Telecommunication Union- Telecommunication sector
  • the MPEG2 encoding stream is classified into classes according to the profile determined by the encoding method and the level determined by the number of pixels to be handled, so that it can support a wide range of applications.
  • MP @ ML Mainn.Profile.Main 'level
  • DVB Digital Video Broadcast
  • DVD Digital Versatile Disk
  • the profile and level are described in sequence-extension described later using FIG.
  • the color difference signals of video are handled in the same 4: 2: 2 format as in conventional baseband, and the upper limit of the bit rate is increased 4: 2: 2P (4: 2: 2 profile).
  • HL High Level
  • Figure 1 shows typical classes of MPEG2 and the upper limit of various parameters in each class.
  • the main level the bit rate, the number of samples per line, the number of lines per frame, the frame frequency, and the upper limit of the sample processing time are shown.
  • the upper limit of the bit rate of 4: 2: 2 P @ HL is 300 (Mbit / sec), and the upper limit of the number of pixels to be processed is 62,668,800 (samples / sec) .
  • the upper limit of the bit rate of MP @ MP is 15 (Mbit / sec), and the upper limit of the number of pixels to be processed is 10,368,000 (samples / sec).
  • the video decoder that decodes 4: 2: 2 P @ HL is 20 times the bit rate and about 6 times the number of pixels to process compared to the video decoder that decodes MP @ ML. It turns out that the ability is needed.
  • FIG. 2 shows the level structure of the MPEG2 video bitstream.
  • sequence-header defines the header data of the sequence of the MPEG bitstream. If the sequence-header in the sequence-first sequence does not have a sequence extension of 21 , the provisions of IS0 / IEC11172-2 apply to this bitstream. When the sequence-extension follows the first sequence-header of the sequence, all subsequent sequence-headers are immediately followed by the sequence-extension. In other words, in the case of Fig. 2
  • sequence_extension defines extension data of the sequence layer of the MPEG bitstream.
  • the sequence-extension only occurs immediately after the sequence-header, and is located at the end of the bitstream to prevent loss of the frame after decoding and after frame reordering. Must not come right before.
  • picture-header is immediately followed by picture-cording-extension.
  • a GOP group_of_picture
  • the GOPJie ader defines the header data of the GOP layer of the MPEG bitstream.
  • the GOPJieder defines the header data of the GOP layer of the MPEG bitstream. The defined data element is described.
  • One picture is encoded as picture_data following picture_header and picture-coding-extension.
  • the first encoded frame following GOPJieader is (The first picture of GOPJieader is an I-picture.) ITU-T Rec. Although they are defined, their illustration and description are omitted here.
  • the picture-header defines the header data of the picture layer of the MPEG bitstream
  • the picture-coding-extension defines the extension data of the picture layer of the MPEG bitstream.
  • picture-data describes data elements relating to a slice layer and a macroblock layer of the MPEG bitstream.
  • picture_data is divided into multiple slices as shown in Fig. 2, and the slice is divided into multiple macroj) locks (macroblocks).
  • the macro_block is composed of 16 ⁇ 16 pixel data.
  • the first and last macroblocks of a slice are not skipped macroblocks (macroblocks without information).
  • a macroblock is composed of 16 x 16 pixel data.
  • Each block is composed of 8 ⁇ 8 pixel data.
  • the internal structure of the macroblock differs between frame coding and field coding for frame images that can use frame DCT (Discrete Cosine Transform) coding and field DCT coding. I do.
  • a macroblock includes one section of a luminance component and a chrominance component.
  • the term macroblock refers to either the source and the decoded data or the corresponding encoded data component.
  • Macroblocks have three chrominance formats: 4: 2: 0, 4: 2: 2 and 4: 4: 4. The order of the blocks in the macroblock depends on the chrominance format.
  • FIG. 3A shows a macroblock in the case of the 4: 2: 0 system. In the 4: 2: 0 format, a macroblock consists of four luminance (Y) blocks and one chrominance (Cb, Cr) block.
  • FIG. 3B shows a macroblock in the case of the 4: 2: 2 system. In the case of the 4: 2: 2 method, a macroblock is composed of four luminance (Y) blocks and two color difference (Cb, Cr) blocks.
  • Each macroblock can be subjected to predictive encoding by several methods.
  • the prediction modes are roughly classified into two types: field prediction and frame prediction.
  • field prediction one or more fields of the previously decoded data are used, and each field is independently predicted.
  • the frame prediction uses one or a plurality of previously decoded frames to perform frame prediction. Within a field image, all predictions are field predictions.
  • a frame image can be predicted by either field prediction or frame prediction, and the prediction method is selected for each macroblock.
  • two types of special prediction modes of 16 ⁇ 8 motion compensation and dual prime can be used.
  • the motion vector information and other peripheral information are encoded together with the prediction error signal of each macroblock.
  • the difference vector from the prediction vector is coded using the last motion vector coded using the variable length code as the prediction vector.
  • the maximum length of the vector that can be displayed can be programmed for each image.
  • the encoder calculates the appropriate motion vector.
  • sequence-header and sequence-extension are arranged.
  • the data element described by the sequence—header and sequence—extension ioni is the data element described by the sequence_header and sequence—extension ion described at the beginning of the sequence of the video stream. Is exactly the same as The reason that the same data is described in the stream in this way is that the bitstream receiving apparatus side is in the middle of the data stream (for example, the bitstream corresponding to the picture layer). This is to prevent that when the reception starts from, the data in the sequence layer cannot be received and the stream cannot be decoded.
  • a 32-bit sequence_end code indicating the end of the sequence; ⁇ It is described and described.
  • sequence—header (included data elements are sequence—header_code, horizontal—size—value, vertica 1—size—value, aspect—ratio—information, frame—rate—code, Dit—rate—value, marker—bit , Vbv_buffer—size—value, constrained—parameter—flag, load—intr a—quantizer—mat rix, intra—quantizer—matrix, load—non—intra—quantizer—mat rl'X and non—intra—quantizer—matrix, etc. Consists of
  • sequencejieader-code is data representing the start synchronization code of the sequence layer.
  • the horizontal_size_value is a data consisting of the lower 12 bits of the number of pixels in the horizontal direction of the image.
  • the vertical_size_value is a data consisting of the lower 12 bits of the number of vertical lines of the image.
  • frame_rate_code is data representing a display cycle of an image.
  • the bit_rate_value is the lower 18 bits of the bit rate for limiting the amount of generated bits.
  • Marker-bit is bit data inserted to prevent start code emulation.
  • vbv buffer—size_value is the lower 10 bits of the value that determines the size of the virtual buffer VBV (Video Buffering Verifier) for controlling the amount of generated code.
  • CO nstrained_parameter flag is data indicating that each parameter is within the limit.
  • the load-non-intra-quantizer-matrix is data indicating the existence of non-intra MB quantized matrix data.
  • load_intra—quantizer—matrix is the data that indicates the existence of quantized matrix data for intra MB.
  • the intra-quantizer matrix is data indicating the value of the intra MB quantizer matrix.
  • the ⁇ -intra-quantizer-matrix is data representing the value of the quantization matrix for non-intra MB.
  • Fig. 5 shows the sequence configuration of the sequence-extension.
  • sequence extension is e xtension—start—code, extension—start—code—identifier, profile—and—level—indication—progressive sequence, chroma—format, horizontal—size—extension, vertical—size—extension, bit—rate—extension, It consists of data elements such as marker—bit, vbv—buffer—size—extension, low_delay, frame—rate—extension—n, and frame—rate—extension—d.
  • extension—start—code is a code representing the start synchronization code of the extension data.
  • the extension_start_code_identifier is data indicating which extension data is sent.
  • the “profile_and_leve” indication is data for specifying the file and level of the video data.
  • the progressive-sequence is data indicating that the video data is a progressive scan (progressive image).
  • chroma_format is a data format for specifying the color difference format of video data.
  • vertical—size_extension is the data of the upper two bits that can be stored in the vertical—size—value of the sequence header.
  • bit-rate-extension is the data of the upper 12 bits that can be added to the bit-rate-value of the sequence.
  • the marker-bit prevents start-code emulation.
  • Vbv_buffer_size_extension is the data of the upper 8 bits added to vbv-buffer_size_value of the sequence header, and low_delay is data indicating that it does not include the B-picture.
  • Extension—n is the data for obtaining the frame rate by combining with the frame-rate-code of the sequence header
  • frame_rate—extension—d is the frame-rate that is combined with the frame_rate— code of the sequence header to c 6 is de Isseki for obtaining Ichito, de Isseki elementary Bok representing the.
  • GOP_header showing the data structure of GOPjieader is, Group_start one code, time- code, closed_gop And broken- is composed of link.
  • start_code is data indicating the start synchronization code of the GOP layer.
  • time_code is a time code indicating the time of the first picture of the GOP.
  • closed_gop is a flag that indicates that the images in the G0P can be played independently from other G0Ps.
  • broken— link indicates that the first B-picture in the GOP cannot be played correctly due to editing, etc. This is flag data.
  • Fig. 7 shows a one-time configuration of picture-header.
  • picture—header The picture elements are picture—start—code, temporal—reference, picture—coding—typ, vbv—delay, full—pel—forward_vector, forward_f_code N full—pel—backward_vector, and backward- f- code etc.
  • picture—start_code is data representing the start synchronization code of the picture layer.
  • the tempora reference is a number that indicates the display order of the pictures, and is reset at the beginning of the GOP.
  • picture—coding_type is data indicating a picture type.
  • v bv delay is data indicating the initial state of the virtual buffer at the time of random access.
  • ful l_pel forward—vector, forward—f_code, ful 1—pel—backward—vector, and backward—code are fixed data not used in MPEG2.
  • Fig. 8 shows the data structure of picture-coding-extension.
  • picture—coding—extension is extension—start—code
  • extension—start—code—identifier f—code [0] [0]
  • intra—dc—precision picture—structure, top—field—firs t, frame—pred—frame—dct, concealment—motion—vectors, q—scale—type
  • Intra—vlc_format alternate—scan, repeat—firt one field
  • chroma—420—type progressive—frame
  • v_a is, field—sequence, sub—carrier, burst—amp litude, and sub — Carrier— It is composed of phases.
  • extension—start_code is a start code indicating the start of extension data in the picture layer.
  • extension—start—code_identifier is a code that indicates which extension data will be sent.
  • L code [0] [0] is a data representing the horizontal motion vector search range in the forward direction.
  • f_code [0] [l] is the data representing the vertical motion vector search range in the forward direction.
  • f—code [l] [0] is data representing the search range of horizontal motion vector in the backward direction.
  • f_code [l] [l] is data representing the vertical motion vector search range in the backward direction.
  • intra—dc—precision is a value that represents the precision of the DC coefficient.
  • Applying DCT to the matrix f representing the luminance and color difference signals of each pixel in the block yields an 8 ⁇ 8 DCT coefficient matrix F.
  • the coefficient at the upper left corner of this matrix F is called DC coefficient.
  • the DC coefficient is This signal indicates the average luminance and average color difference within the frame.
  • the picture_structure is data indicating whether it is a frame structure or a field structure. In the case of a field structure, it is data indicating the upper field or the lower field.
  • top_field_first is data indicating whether the first field is top or bottom in the case of a frame structure.
  • frame — predictive — frame — dct is data indicating that the frame 'mode DCT prediction is only frame mode in the case of frame structure.
  • concealment—motion—vectors is a reminder that the intra-macroblock has a motion vector to conceal transmission errors.
  • q-scale-type is data indicating whether to use a linear quantization scale or a non-linear quantization scale.
  • intra vlcjormat is data indicating whether or not to use another two-dimensional variable length coding (VLC) for intra macroblocks.
  • alternate-scan is data indicating the choice between using a zigzag scan or an alternate scan.
  • repeat_firt—field is the data used for 2: 3 pulldown.
  • chroma_420_type is the same value as the next progressive-frame if the signal format is 4: 2: 0, otherwise it is zero.
  • progressive_fraDie is a date indicating whether this picture is a progressive scan or an in-field.
  • composite display—flag is data indicating whether the source signal was a composite signal.
  • FIG. 9 shows the data structure of picture_data.
  • the data element defined by the picture_data () function is the data element defined by the slice () function. At least one data element defined by the si ice () function is described in the bitstream.
  • slice_start—code is a time code that indicates the time of the data element defined by the slice () function.
  • quantiser-scale-code is a data indicating the quantization step size set for the macroblock existing in this slice layer, and the quantiser-scale-code is set for each macroblock. In this case, the macroblock-quantizer-scale-code data set for each macroblock is preferentially used.
  • the intra-si ice-flag is a flag indicating whether or not intra-si ice and reserved-bits exist in the bitstream.
  • the intra_slice is a data indicating whether or not a non-intra macro block exists in the slice layer. If any of the macroblocks in the slice layer is a non-intra macroblock, intra_siice is “0”, and if all of the macroblocks in the slice layer are nonintra macroblocks, intra_slice is It becomes “1”. reserved— bits are 7-bit data and take the value of “ ⁇ ”.
  • extra_bit—slice is a flag that indicates that additional information is present, and is set to “1” if extra_information_slice is present and “0” if no additional information is present. Set.
  • the macroblock () function is composed of elements such as macroblock—escape, macroblock—address—increments and quantiser—seale_code ⁇ and marker—bit, and macroblockjnodes () function, motion_vectors (s ) Function, and coded—A function for describing the data element defined by the block_pattern () function.
  • macroblock-escape is a fixed sequence of bits that indicates whether the horizontal difference between the reference macroblock and the previous macroblock is greater than or equal to 34. If the horizontal difference between the reference macroblock and the previous macroblock is greater than or equal to 34, 33 is added to the value of macroblock—address—increment.
  • macroblock—address—increment is a value indicating the horizontal difference between the reference macroblock and the previous macroblock. If there is one macroblock—escape force s in the macroblock—address—increment eye ij, the value of this macroblock address—increment t plus 33 is the actual reference. This is data indicating the horizontal difference between the reference macroblock and the previous macroblock.
  • the quantiser_scale_code is a data indicating the quantization step size set for each macroblock, and is present only when macroblock_quant is “1”.
  • a slice_quanti- cer—scale—code indicating the quantization step size of the slice layer is set. If the scale_code is set for the reference macroblock, this quantization step is used. Choose a size.
  • macroblock one address—increment in other words, mac rob lock one modes ()
  • the number of data elements defined by this is described.
  • the macrob lockjnodes () function is as shown in Figure 12 This is a function for describing the data elements such as macroblock-type, frame-motion-type, fiel d_motion_type, dct_type, etc.
  • niacroblock_type is a data block indicating the coding type of the macroblock. It is.
  • frame—pred_frame_dct is “0”, indicates macroblock—type.
  • the frame_pred_frame_dct is a flag indicating whether or not the frame_motion_type exists in the bitstream.
  • frame—motion—type is a 2-bit code indicating the prediction type of the macroblock in the frame. If there are two prediction vectors and the field-based prediction type, then framejnotion_type is “0 0”.
  • frame_motion If there is one prediction vector and the field-based prediction type is frame_motion, — If the type is “0 1” and the prediction vector is 1 and the frame-based prediction is performed, framejnotion_type is “1 0” and the prediction vector is 1 and the dual-blime prediction is performed. If it is a type, fram e_inotion— type is “1 1”.
  • f ie ld motion—type is a 2-bit code indicating the motion prediction of the field's Mac mouth block. If the prediction vector is a field-based prediction type with one prediction vector, “01” is used. If the prediction vector is a prediction type based on a macroblock based on two prediction vectors, it is “10”. Therefore, if the prediction vector is one and the prediction type is dual blime, it is “1 1”.
  • the picture structure is a frame, and frame—pred—f raffle dct is the bitstream.
  • frame- mot ion- type force s indicates the presence, if you have indicated that the f rame one pred- f rame- dct force s, is dct_type in the bitstream of its exist
  • the data element representing dct_type is described next to the data element representing macroMock —type.
  • the dct-type is data indicating whether the DCT is a frame DCT mode or a field DCT mode.
  • each of the data elements described above starts with a special bit pattern called a start code.
  • start codes are specific bit patterns that do not otherwise appear in the video stream.
  • Each start code consists of a start code prefix followed by a start code value.
  • the start code prefix is a bit string "0000 0 000 0000 0000 0001".
  • the start code value is an 8-bit integer that identifies the type of start code.
  • FIG. 13 shows the value of each start code of MPEG2.
  • Many scan codes are indicated by a single start code value.
  • the slice_start_code is represented by a plurality of timecode values from 01 to AF, and the start code value represents the vertical position with respect to the slice. Since all of these start codes are in byte units, the start code of the start code is the first bit of the byte so that the start code is before the start code. In this case, multiple bits "0" are inserted, and adjustment is made so that the start code is in byte units.
  • Fig. 14 is a block diagram showing the circuit configuration of a conventional MPEG video decoder supporting MP @ ML.
  • the MPEG video decoder has a stream input circuit 11, a buffer control circuit 12, a clock generation circuit 13, a start code detection circuit 14, a decoder 15, a motion compensation circuit 16, and a display.
  • An IC (integrated circuit) 1 composed of an output circuit 17 and a buffer 2 composed of a stream buffer 21 and a video buffer 22, for example, a dynamic random access memory (DRAM). It consists of.
  • DRAM dynamic random access memory
  • the stream input circuit 11 of the IC 1 receives the input of the encoded stream that has been subjected to the high-efficiency encoding, and supplies it to the buffer control circuit 12.
  • the buffer control circuit 12 receives the input encoding stream according to the basic clock supplied from the clock generation circuit 13. Enter the stream into stream 2 of stream 2.
  • the stream buffer 21 has a capacity of 1,835,008 bits, which is the VBV buffer size required for the decoding of MP @ ML.
  • the encoded stream stored in the stream buffer 21 is sequentially read out from the previously written data under the control of the buffer control circuit 12, and supplied to the start code detection circuit 14. Is done.
  • the start code detection circuit 14 detects the start code described with reference to FIG. 13 from the input stream, and outputs the detected start code and the input stream to the decoder 15. Output to
  • the decoder 15 decodes the input stream based on the MPEG syntax.
  • the decoder 15 first decodes the header parameter of the victim layer according to the input start code, separates the slice layer into macroblocks based on the decoded header block, decodes the macroblock, and predicts the resulting prediction.
  • the vectors and pixels are output to the motion compensation circuit 16.
  • the coding efficiency is improved by obtaining the motion-compensated difference between adjacent images using the temporal redundancy of the images.
  • the MPEG video decoder performs motion compensation on pixels using motion compensation by adding the pixel value of the reference image indicated by the motion vector to the pixel currently being decoded. Decode the image data overnight.
  • the motion compensation circuit 16 writes the pixel data to the video buffer 22 of the buffer 2 via the buffer control circuit 12 In addition to preparing for display output, this pixel data is prepared in a case where it is used as reference data for another image.
  • the motion compensator 16 uses the buffer 2 through the buffer control circuit 12 according to the prediction vector output from the decoder 15. Read reference pixel data from video buffer 22 Then, the read reference pixel data is added to the pixel data supplied from the decoder 15 to perform motion compensation.
  • the motion compensation circuit 16 writes the motion-compensated pixel data to the video buffer 22 of the buffer 2 via the buffer control circuit 12 to prepare for display output, and the pixel data is used as a reference for other pixels. To be used as illumination data.
  • the display output circuit 17 generates a synchronous timing signal for outputting the decoded image data, and based on this timing, the pixel data from the video buffer 22 via the buffer control circuit 12 based on this timing. And outputs it as a decoded video signal.
  • the MPEG2 stream has a hierarchical structure.
  • the amount of data below the slice layer depends on the number of pixels to be coded.
  • the number of macroblocks that must be processed with one picture in HL is about six times that of ML. Further, from FIG. 3B, in 4: 2: 2P, the number of blocks processed by one macroblock is 4/3 times as large as MP.
  • the VBV buffer size and the number of pixels increase. Accordingly, the buffer size of the stream buffer 21 becomes insufficient.
  • the access of the input stream to the stream buffer 21 increases, and as the number of pixels increases, the access to the video buffer 22 of the motion compensation circuit 16 increases. Since the number of accesses to the buffer control circuit increases, the control of the buffer control circuit 12 cannot be performed in time. Further, with the increase of the bit rate, the number of macro programs and the number of blocks, the processing of the decoder 15 cannot be performed in time.
  • a first decoding device includes: a plurality of decoding units for decoding an encoded stream; and a decoding control unit for controlling the plurality of decoding units to operate in parallel. .
  • the plurality of decoding means may output a signal indicating the end of the decoding processing to the decoding control means.
  • the decoding control means may output the signal indicating the end of the decoding processing to the decoding means which outputs the signal indicating the end of the decoding processing. It can be controlled to decode the encrypted stream.
  • First buffer means for buffering the coded stream; and reading out a start code indicating the start of a unit of predetermined information included in the coded stream from the coded stream. Reading means for reading the position information relating to the position where the start code is held in the one buffer means; and second buffer means for buffering the start code and the position information read by the reading means.
  • buffering control means for controlling the buffering of the encoded stream by the first buffer means and the buffering of the start code and position information by the second buffer means. Can be done.
  • the encoding stream may be an MPEG2 encoding stream as specified in IS0 / IEC 13818-2 and ITU-T Recommendation H.262.
  • Selecting means for selecting a predetermined one of the plurality of image data decoded and output by the plurality of decoding means, and a motion for receiving the input of the image data selected by the selecting means and performing motion compensation as necessary Compensation means may be further provided.
  • the decoding means may cause the selection means to output an end signal indicating that the decoding processing has been completed, and the selection means stores values corresponding to the respective processing states of the plurality of decoding means.
  • the values of the storage means all become the first value
  • the data is stored in the storage means corresponding to the decoding means which outputs the end signal indicating that the decoding processing has been completed.
  • the value is changed from the first value to the second value, and the image data decoded by the decoding means whose corresponding value stored in the storage means is the second value.
  • one of the image data can be selected, and the value stored in the storage unit corresponding to the decoding unit that has decoded the selected image data can be changed to the first value. .
  • Holding means for holding the image data selected by the selection means or the image data on which motion compensation has been performed by the motion compensation means; the image data selected by the selection means; and motion compensation by the motion compensation means.
  • holding control means for controlling the holding of the image data by the holding means.
  • the holding means may hold the luminance component and the color difference component of the image data separately.
  • the image processing apparatus may further include changing means for changing the order of frames of the coded stream supplied to the decoding means, wherein the holding means includes an intra coded frame in the image sequence and a forward prediction. At least two more frames can be retained than the total number of coded frames, and the change means includes a predetermined order for reversely reproducing the coded streams. Thus, the order of the frames in the encoded stream can be changed.
  • Output means for reading and outputting the image data held by the holding means may be further provided.
  • the predetermined order may be an intra-coded frame, a forward prediction-coded frame, a bi-directional frame.
  • the order of the predictive coded frames and the order in the bidirectional predictive coded frame can be reverse to the order of the coding, and the output means decodes the data by the decoding means.
  • the bidirectional predictive coded frames held by the holding means are sequentially read and output, and at a predetermined timing, the intra coded frames or the forward predictive coded frames held by the holding means are read out. It can be read out, inserted at a predetermined position between the bidirectional predictive encoded frames, and output.
  • the predetermined order is a timing at which the output means outputs the intra-coded frame or the forward prediction-coded frame, and the intra-coding of the immediately preceding image sequence decoded by the decoding means.
  • the order may be such that the frames or the forward prediction coded frames are held by the holding means.
  • Recording means for recording information necessary for decoding the encoded stream;
  • Control means for controlling the recording of the information by the stage and the supply of the information to the decoding means.
  • the encoded stream may include the information, and the control means may include: It is possible to select information necessary for the decoding process of the decoding means and supply the information to the decoding means.
  • the information supplied by the control unit to the decoding unit may be an upper layer coding parameter corresponding to the frame being decoded by the decoding unit.
  • Output means for reading out and outputting the image data held by the holding means may be further provided, and the decoding means is N times as fast as the processing speed required for normal reproduction of the encoded stream.
  • the output means can output the image data of every N frames among the image data held by the holding means. be able to.
  • First holding means for holding the coded stream, and reading a start code indicating the start of a unit of predetermined information contained in the coded stream from the coded stream, Reading means for reading position information relating to the position where the start code is held in the holding means; second holding means for holding the start code and the position information read by the reading means; First holding control means for controlling the holding of the coded stream by the holding means and the holding of the start code and the position information by the second holding means, and the decoded and output by the plurality of decoding means.
  • Selecting means for selecting a predetermined one of the plurality of image data, and receiving the input of the image data selected by the selecting means and performing motion compensation as necessary Compensation means, image data selected by the selection means, or third storage means for holding image data subjected to motion compensation by the motion compensation means, image data selected by the selection means, and motion
  • the image data on which motion compensation has been performed by the compensating means may be further provided with second holding control means for controlling the holding by the third holding means in the evening independently of the first holding control means.
  • a first decoding method of the present invention includes a plurality of decoding steps for decoding an encoded stream, and a decoding control step for controlling processing of the plurality of decoding steps to operate in parallel.
  • the program recorded on the first recording medium of the present invention stores the encoded stream. It is characterized by including a plurality of decoding steps for decoding and a decoding control step for controlling processing of the plurality of decoding steps to operate in parallel.
  • a first program of the present invention includes a plurality of decoding steps for decoding an encoded stream, and a decoding control step for controlling processing of the plurality of decoding steps to operate in parallel. I do.
  • a second decoding apparatus includes a plurality of slice decoders for decoding an encoded stream, and a slice decoder control means for controlling a plurality of slice decoders to operate in parallel.
  • a second decoding method provides a decoding control step for controlling decoding by a plurality of slice decoders for decoding an encoded stream, and a slice decoder for controlling the decoding control steps to be processed in parallel. And a control step.
  • a program recorded on the second recording medium of the present invention causes a decoding control step for controlling decoding by a plurality of slice decoders for decoding an encoded stream and a decoding control step to be processed in parallel. And a slice decoder control step for performing control as described above.
  • a second program of the present invention includes a decoding control step for controlling decoding by a plurality of slice decoders for decoding an encoded stream, and a slice decoder control step for controlling the decoding control steps to be processed in parallel. It is characterized by including.
  • a third decoding device includes a plurality of slice decoders for decoding a source encoded stream, and a plurality of slices for each slice constituting a source encoded stream.
  • Control means for monitoring the decoding status of the decoder and controlling a plurality of slice decoders, wherein the control means controls the decoding of the picture by the slice decoder regardless of the order of the slices included in the picture. It is characterized in that slices are assigned to a plurality of slice decoders so that the loading process is the fastest.
  • a plurality of slice decoders decode a source coded stream for each slice constituting a picture of the source coded stream.
  • a decoding process control step for controlling the processing; and a control step for monitoring the decoding status of the plurality of slice decoders and controlling the plurality of slice decoupling processes. Regardless of the order of the included slices, the slice is allocated to a plurality of slice decoders so that the decoding process executed in the slice decoder is the fastest.
  • a third program of the present invention includes a decoding processing control step for controlling decoding processing of a source coded stream for each slice constituting a picture of the source coded stream by a plurality of slice decoders. And a control step for monitoring the decoding stage of the plurality of slice decoders and controlling the plurality of slice decoding stages.
  • a slice is allocated to a plurality of slice decoders so that the decoding process executed in the slice decoder is the fastest.
  • a fourth decoding apparatus includes a plurality of slice decoders for decoding a source coded stream and a decoding step for the plurality of slice decoders, for each slice constituting a source encoded stream picture.
  • Control means for monitoring one task and controlling a plurality of slice decos, and wherein the control means determines which slice of the plurality of slice decoders has been decoded irrespective of the order of the slices included in the picture.
  • a slice to be decoded is assigned to a decoder.
  • a fourth decoding method includes a decoding process control step of controlling decoding of a source coded stream for each slice constituting a picture of the source coded stream by a plurality of slice decoders.
  • a slice to be decoded is assigned to a slice decoder of which decoding processing has been completed by the processing of the decoding processing control step among a plurality of slice decoders.
  • a fourth program of the present invention is a decoding program control for controlling decoding of a source coded stream for each slice constituting a picture of the source coded stream by a plurality of slice decoders. Step and deco of multiple slice decoders And a control step for monitoring the status and controlling a plurality of slice decoupling operations.
  • the decoding is performed among the plurality of slice decoders regardless of the order of the slices included in the picture.
  • a slice to be decoded is assigned to a slice decoder for which decoding processing has been completed by the processing of the processing control step.
  • the encoding stream is decoded, and the decoding process is controlled so that the decoding process operates in parallel.
  • an encoded stream is decoded by a plurality of slice decoders, and decoding processing by the plurality of slice decoders is performed in parallel.
  • the source coded stream is decoded for each slice constituting the picture of the source coded stream, and the decoding steps of a plurality of slice decoders are performed.
  • a plurality of slice decos are controlled, and the slice processing is performed in the slice decoder so as to be the fastest, regardless of the order of the slices included in the picture.
  • the source encoded stream is decoded for each slice constituting a picture of the source encoded stream, and the decoding of a plurality of slice decoders is performed.
  • a plurality of slice decoders are controlled, and regardless of the order of the slices included in the picture, the slice decoder of the plurality of slice decoders that has finished decoding is controlled.
  • a slice to be decoded is allocated.
  • FIG. 1 is a diagram for explaining an upper limit value of each parameter according to a profile and a level of MPEG2.
  • FIG. 2 is a diagram for explaining a hierarchical structure of an MPEG2 bit stream.
  • FIGS. 3A and 3B are diagrams for explaining the macroblock layer.
  • FIG. 4 is a diagram for explaining the data structure of sequencejieader.
  • FIG. 5 is a diagram for explaining the sequence structure of sequence-extension.
  • FIG. 6 is a diagram for explaining the data structure of GOPJieader.
  • FIG. 7 is a diagram for explaining the data structure of picture_header.
  • FIG. 8 is a diagram for explaining the data structure of picture_coding_extension.
  • FIG. 9 is a diagram for explaining the data structure of picture-data.
  • FIG. 10 is a diagram for explaining the data structure of slice.
  • FIG. 11 is a diagram for explaining the data structure of a macroblock.
  • FIG. 12 is a diagram for explaining a macroblock-modes data structure.
  • FIG. 13 is a diagram for explaining a start code.
  • FIG. 14 is a block diagram showing a configuration of a video decoder that decodes a conventional MUMP encoded stream.
  • FIG. 15 is a block diagram showing a configuration of a video decoder to which the present invention is applied.
  • FIG. 16 is a flowchart for explaining the processing of the slice decoder control circuit.
  • FIG. 17 is a diagram for explaining a specific example of the processing of the slice decoder control circuit.
  • FIG. 18 is a flowchart for explaining the arbitration processing of the slice decoder by the motion compensation circuit.
  • FIG. 19 is a diagram for explaining a specific example of the arbitration processing of the slice decoder by the motion compensation circuit.
  • FIG. 20 is a block diagram showing a configuration of a playback device including the MPEG video decoder of FIG.
  • FIG. 21 is a diagram showing the structure of the MPEG video signal input to the encoder and encoded.
  • FIG. 22 is a diagram illustrating an example of MPEG image encoding using inter-frame prediction.
  • Fig. 23 shows the decoding process when the MPEG encoding stream is played back in the forward direction.
  • FIG. 24 is a diagram for explaining the decoding process when the MPEG encoded stream is reproduced in reverse.
  • BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
  • FIG. 15 is a block diagram showing a circuit configuration of an MPEG video decoder to which the present invention is applied.
  • the MPEG video decoder in Fig. 15 has a stream input circuit 41, a start code detection circuit 42, a stream buffer control circuit 43, a clock generation circuit 44, a picture decoder 45, and a slice decoder control.
  • Circuit 46, slice decoders 47 to 49, motion compensation circuit 50, luminance buffer control circuit 51, color difference buffer control circuit 52, and IC 31 composed of display output circuit 53, stream buffer 6 1 and a start code buffer 62, for example, a DRAM buffer 32, a luminance buffer 71 and a chrominance buffer 72, for example, a DRAM video buffer 33, a controller 34, And Drive 35.
  • the stream input circuit 41 receives the input of the stream that has been encoded with high efficiency, and supplies the stream to the stream code detection circuit 42.
  • the start code detection circuit 42 supplies the input encoded stream to the stream buffer control circuit 43, detects the start code described with reference to FIG. 13 and detects the start code.
  • the stream buffer control circuit generates start code information including a type of the start code and a write pointer indicating a position where the start code is written in the stream buffer 61. 4 3 to supply.
  • the clock generation circuit 44 generates a basic clock twice as large as the clock generation circuit 13 described with reference to FIG. 14 and supplies the same to the stream buffer control circuit 43.
  • the stream buffer control circuit 43 writes the input encoded stream to the stream buffer 61 of the sofa 32 according to the basic clock supplied from the clock generation circuit 44, and The input start code information is stored in the buffer 32 Write to ToPnFa6.
  • the stream buffer 61 will at least It has a capacity of 47, 185, 920 bits, which is a VBV buffer size required for decoding 4: 2: 2P @ HL.
  • the stream buffer 61 has a capacity capable of recording at least 2 G0P of data. I have.
  • the picture decoder 45 reads out the start code information from the start code buffer 62 via the stream buffer control circuit 43. For example, at the start of decoding, decoding starts from the sequencejieader described with reference to FIG. 2, so that the victim decoder 45 is the sequence code described with reference to FIG.
  • the write pointer corresponding to the header_code is read from the start buffer 62, and the sequence header is read from the stream buffer 61 and decoded based on the write pointer. Subsequently, the picture decoder 45 reads out and decodes sequence-extension, GOP-header, picture-coding_extension, etc. from the stream buffer 61 in the same manner as the reading of sequence-header. .
  • the picture decoder 45 When the picture decoder 45 reads out the first slice_st art—code from the start code buffer 62, all the parameters necessary for decoding the picture are complete.
  • the victim decoder 45 outputs the decoded parameters of the victim layer to the slice decoder control circuit 46.
  • the slice decoder control circuit 46 receives the input of the picture layer parameter, and reads out the start code information of the corresponding slice from the start code buffer 62 via the stream buffer control circuit 43.
  • the slice decoder control circuit 46 has a register indicating the number of the slice included in the encoded stream, which is the slice to be decoded by any of the slice decoders 47 to 49. Then, referring to the register, the picture layer parameter and the write pointer of the slice included in the start code information are supplied to one of the slice decoders 47 to 49.
  • the slice decoder control circuit 46 performs a process of selecting a slice decoder for executing the decoding among the slice decoders 47 to 49. This will be described later with reference to FIGS. 16 and 17.
  • the slice decoder 47 includes a macroblock detection circuit 81, a vector decoding circuit 82, an inverse quantization circuit 83, and an inverse DCT circuit 84.
  • the corresponding slice is read from the stream buffer 61 via the stream buffer control circuit 43 based on the write pointer. Then, in accordance with the picture layer parameters input from the slice decoder control circuit 46, the read slice is decoded and output to the motion compensation circuit 50.
  • the macroblock detection circuit 81 separates the macroblocks in the slice layer, decodes the parameters of each macroblock, and predicts the prediction mode and prediction vector of each variable-length coded macroblock. Is supplied to a vector decoding circuit 82, and the variable-length encoded coefficient data is supplied to an inverse quantization circuit 83.
  • the vector decoding circuit 82 decodes the prediction mode and the prediction vector of each macroblock that has been subjected to the variable length coding, and restores the prediction vector.
  • the inverse quantization circuit 83 decodes the variable-length coded coefficient data and supplies it to the inverse DCT circuit 84.
  • the inverse DCT circuit 84 performs inverse DCT on the decoded coefficient data, and restores the pixel data before encoding.
  • the slice decoder 47 requests the motion compensation circuit 50 to perform motion compensation on the decoded macroblock (that is, sets the signal indicated by REQ in the figure to 1), and the motion compensation circuit 50 Receiving the signal indicating the acceptance of the execution request (the signal indicated by ACK in the figure), and supplies the decoded prediction vector and the decoded pixel to the motion compensation circuit 50.
  • the slice decoder 47 receives the ACK signal, supplies the decoded prediction vector and the decoded pixel to the motion compensation circuit 50, and then changes the REQ signal from 1 to 0. I do. Then, when decoding of the next input macro program is completed, the REQU signal is changed from 0 to 1 again.
  • the macroblock detection circuit 8 of the slice decoder 47 Since the same processing as in 1 to the inverse DCT circuit 84 is performed, the description is omitted.
  • the motion compensation circuit 50 has three registers, Reg_REQ_A, Reg-REQ_B and Reg-REQ-C, which indicate whether or not the motion compensation of the data inputted from the slice decoders 47 to 49 has been completed.
  • one of the slice decoders 47 to 49 is appropriately selected and a motion compensation execution request is accepted (ie, an ACK signal is output in response to the REQ signal). Then, the input of the prediction vector and the pixel is received), and the motion compensation processing is executed. At this time, the motion compensation circuit 50 performs the motion compensation for the slice decoders 47 to 49 of which the REQ signal is 1 at a predetermined timing among the slice decoders 47 to 49. After completing each time, the next motion compensation request is accepted.
  • the second motion compensation request of the slice decoder 47 is accepted until the motion compensation of the slice decoder 48 and the slice decoder 49 ends. Absent.
  • the processing by which the motion compensation circuit 50 selects which decoder of the slice decoders 47 to 49 performs motion compensation will be described later with reference to FIGS. 18 and 19. I do.
  • the motion compensation circuit 50 outputs the luminance buffer control circuit 5 if the pixel data is luminance data. 1 is written to the luminance buffer 71 of the video buffer 33, and if the pixel data is chrominance data, written to the chrominance buffer 72 of the video buffer 33 via the chrominance buffer control circuit 52. In addition to preparing for display output, prepare in case this pixel data is used as reference data for another image.
  • the motion compensation circuit 50 receives an input from a corresponding one of the slice decoders 47 to 49. If the pixel data is luminance data according to the prediction vector, the reference pixel is read from the luminance buffer 71 via the luminance buffer control circuit 51, and if the pixel data is color difference data, The reference pixel data is read from the color difference buffer 72 via the color difference buffer control circuit 52. Then, the motion compensation circuit 50 adds the read reference pixel data to the pixel data supplied from any of the slice decoders 47 to 49, and performs motion compensation. •Five.
  • the motion compensation circuit 50 writes the pixel data subjected to the motion compensation into the luminance buffer # 1 via the luminance buffer control circuit 51 if the pixel data is luminance data, and the pixel data is If it is color difference data, it is written to the color difference buffer 72 via the color difference buffer control circuit 52 to prepare for display output, and also to prepare when this pixel data is used as a reference data for other pixels.
  • the display output circuit 53 generates a synchronization timing signal for outputting the decoded image data, and reads out the luminance data from the luminance buffer 71 via the luminance buffer control circuit 51 according to this timing.
  • the color difference buffer 72 is read out of the color difference buffer 72 via the color difference buffer control circuit 52 and output as a decoded video signal.
  • the drive 35 is connected to the controller 34, and includes a magnetic disk 101, an optical disk 102, a magneto-optical disk 103, and a semiconductor memory 104 mounted as necessary. Send and receive data.
  • the controller 34 controls the operation of the IC 31 and the drive 35 described above.
  • the controller 34 for example, operates according to the programs recorded on the magnetic disk 101, optical disk 102, magneto-optical disk 103, and semiconductor memory 104 mounted on the drive. 3 1 can execute the process.
  • step S2 the slice decoder control circuit 46 determines whether the slice decoder 47 is processing.
  • step S3 the slice decoder control circuit 46 determines the parameters of the picture layer and the slice N included in the start code information. The write pointer is supplied to the slice decoder 47, and the slice decoder 47 decodes the slice N, and the process proceeds to step S8. If it is determined in step S2 that the slice decoder 47 is processing, the slice decoder control circuit 46 determines in step S4 whether the slice decoder 48 is processing. . If it is determined in step S4 that the slice decoder 48 is not being processed, in step S5, the slice decoder control circuit 46 includes the picture layer parameters and the start code information. The write pointer for slice N is supplied to slice decoder 48, and slice decoder 48 decodes slice N, and the process proceeds to step S8.
  • step S4 If it is determined in step S4 that the slice decoder 48 is processing, the slice decoder control circuit 46 determines in step S6 whether the slice decoder 49 is processing. . If it is determined in step S6 that the slice decoder 49 is being processed, the process returns to step S2, and the subsequent processes are repeated.
  • step S7 the slice decoder control circuit 46 includes the parameters of the picture layer and the slice code information.
  • the write point of the slice N to be written is supplied to the slice decoder 49, and the slice decoder 49 decodes the slice N, and the process proceeds to step S8.
  • step S9 the slice decoder control circuit 46 determines whether or not decoding of all slices has been completed. If it is determined in step S9 that decoding of all slices has not been completed, the process returns to step S2, and the subsequent processes are repeated. If it is determined in step S9 that decoding of all slices has been completed, the process ends.
  • FIG. 17 is a diagram illustrating a specific example of the processing of the slice decoder control circuit 46 described with reference to FIG.
  • the picture decoder 45 decodes the picture layer data, and the parameters are supplied to the slice decoder control circuit 46.
  • step S9 since it is determined that decoding of all slices has not been completed, the process returns to step S2.
  • step S2 it is determined that the slice decoder 47 is processing. Then, in step S4, it is determined that the slice decoder 48 is not performing the processing.
  • step S2 the slice decoder 47 is determined to be processing, and in step S4, the slice decoder 48 is determined to be processing.
  • step S8 N-N + 1 is set.
  • step S9 since it is determined that decoding of all slices has not been completed, the process returns to step S2.
  • the slice decoders 47 to 49 After performing the decoding process on the input slice, the slice decoders 47 to 49 output a signal indicating the completion of the decoding process to the slice decoder control circuit 46. That is, since the slice decoders 47 to 49 are all being processed until a signal indicating the completion of decoding of the slice 2 is input from any of the slice decoders 47 to 49, step S2 and step S2 are performed. Steps S4 and S6 are repeated. At the timing indicated by A in FIG. 17, the slice decoder 48 outputs a signal indicating the completion of the decoding process to the slice decoder 46.
  • step S2 the slice decoder control circuit 46 receives the signal indicating the end of the decoding of the slice 3 from the slice decoder 49 at the timing indicated by B in the figure. In, it is determined that the slice decoder 49 is not processing.
  • step S9 it is determined that decoding of all slices has not been completed, so the process returns to step S2.
  • the same processing is repeated until the decoding of the last slice is completed.
  • the slice decoder control circuit 46 allocates the slice decoding process while referring to the processing status of the slice decoders 47 to 49, a plurality of decoders can be used efficiently.
  • step S22 the motion compensation circuit 50 determines whether or not all the register values are 0. If it is determined in step S22 that the register values are not all 0 (that is, there is at least one 1), the process proceeds to step S24. move on.
  • the slice decoder 47 outputs, to the motion compensation circuit 50, the prediction vector decoded by the vector decoding circuit 82 and the pixel subjected to the inverse DCT by the inverse 0 ⁇ circuit 84. Then, the process proceeds to step S30.
  • the slice decoder 48 outputs, to the motion compensation circuit 50, the prediction vector decoded by the vector decoding circuit 86 and the pixel subjected to the inverse DCT by the inverse DCT circuit 88. Then, the process proceeds to step S30.
  • the slice decoder 49 supplies the motion compensation circuit 50 with the prediction vector decoded by the vector decoding circuit 90 and the inverse DCT by the inverse DCT circuit 92.
  • the output pixel is output. Then, the process proceeds to step S30.
  • step S30 the motion compensation circuit 50 determines whether the macroblock input from any of the slice decoders 47 to 49 uses motion compensation.
  • step S31 the motion compensation circuit 50 performs a motion compensation process on the input macroblock. That is, the motion compensating circuit 50 outputs the luminance buffer control circuit 51 according to the prediction vector output from the corresponding decoder among the slice decoders 47 to 49 if the pixel data is luminance data. Then, the reference pixel is read from the luminance buffer 71 via the luminance buffer 71, and if the pixel data is the color difference data, the reference pixel data is read from the color difference buffer 72 via the color difference buffer control circuit 52. Then, the motion compensation circuit 50 adds the read reference pixel data to the pixel data supplied from any of the slice decoders 47 to 49 to perform motion compensation.
  • the motion compensation circuit 50 writes the pixel data subjected to the motion compensation to the luminance buffer 71 via the luminance buffer control circuit 51 if the pixel data is luminance data, and the pixel data is If it is a color difference data, it is written to the color difference buffer 72 via the color difference buffer control circuit 52 to prepare for display output, and also to prepare when this pixel data is used as a reference data of another pixel. . Then, the process returns to step S22, and the subsequent processes are repeated.
  • step S30 when it is determined that the macro program does not use motion compensation, in step S32, the motion compensation circuit 50 outputs a luminance buffer if the pixel data is luminance data.
  • the pixel data is written to the luminance buffer 71 via the control circuit 51, and if the pixel data is color difference data, the pixel data is written to the color difference buffer 72 via the color difference buffer control circuit 52 to prepare for display output. It is prepared in case that the pixel data is used as a reference data for another image. Then, the process returns to step S22, and the subsequent processes are repeated.
  • FIG. 19 is a diagram showing a specific example of the arbitration processing of the decoder by the motion compensation circuit 50 described with reference to FIG.
  • step S22 the process returns to step S22 again.
  • the REQ signal is output from the slice decoder 47.
  • the motion compensation circuit 50 performs motion compensation while arbitrating the slice decoders 47 to 49.
  • the picture decoder 45 to the slice decoder 49 wait for the end of each other operation by providing the picture code buffer 62. Without this, the stream buffer 61 can be accessed.
  • the slice decoders 47 to 49 can be operated simultaneously by the processing of the slice decoder control circuit 46. Further, the motion compensation circuit 30 can appropriately select one slice decoder, access the separated luminance buffer 71 and color difference buffer 72, and perform motion compensation. Therefore, in the MPEG video decoder of FIG. 15, the decoding processing performance and the access performance to the buffer are improved, and the decoding processing for 2: 4: 4P @ HL can be performed.
  • FIG. 20 is a block diagram showing a configuration of a playback device including the MPEG video decoder of FIG. Parts corresponding to those in FIG. 15 are denoted by the same reference numerals, and description thereof will be omitted as appropriate.
  • the servo circuit 111 drives the hard disk 112 based on the control of the controller 34, and the MPEG stream read by the data reading unit (not shown) is read by the reproduction circuit 1 of the IC 31. 2 Entered in 1.
  • the reproduction circuit 122 is a circuit including the stream input circuit 41 to the clock generation circuit 44 described with reference to FIG. 15.
  • the MPEG streams are input in the order of input.
  • the stream is output to the MPEG video decoder 122 as a playback stream.
  • reverse playback reverse playback
  • the input MPEG encoded stream is rearranged using a stream buffer 61 into an order suitable for reverse playback, and then played back.
  • the stream is output to the MPEG video decoder 122 as a stream.
  • the MPEG video decoder 122 is a circuit including the picture decoder 45 to the display output circuit 53 described with reference to FIG. 15, and the video buffer 33
  • the decoded frames stored in the playback stream are read out as reference images, motion compensation is performed, and each picture (frame) of the input playback stream is decoded by the above-described method, and is stored in the video buffer 33.
  • the frames stored in the video buffer 33 are sequentially read out by the processing of the display output circuit 53, output to a display unit or a display device (not shown), and displayed.
  • the recording / reproducing apparatus may have a configuration different from the configuration shown in FIG. 20 (for example, a function of holding an encoded stream, as in the case of the stream buffer 61, and a frame, as in the case of the playback circuit 121). Even if the reordering function is provided in the MPEG video decoder 122), the input MPEG encoded stream is decoded and output by basically the same processing. .
  • various storage media such as an optical disk, a magnetic disk, a magneto-optical disk, a semiconductor memory, and a magnetic tape can be used as the storage medium for storing the encoded stream.
  • FIG. 21 is a diagram showing the structure of a picture of an MPEG video signal that is input to an encoder (not shown) and encoded.
  • Frame 12 is an intra-coded frame (I picture), which is encoded without referring to other images. Such a frame is It provides an access point for the encoded sequence that is the starting point for decoding, but its compression ratio is not too high.
  • Frame P5, Frame P8, Frame Pb, and Frame Pe are forward predictive coded frames (P-pictures) and are more efficient than I-pictures due to motion compensated prediction from past I-pictures or P-pictures. Encoding is performed. The P picture itself is also used as a reference for prediction.
  • Frame B 3 Frame ⁇ 4 ⁇ Frame B d is a bidirectionally predicted coded frame, and is more efficiently compressed than I-picture and P-pictures. Requires both past and future reference images. B pictures are not used as prediction references.
  • Fig. 22 shows an example of MPEG video signal encoding using inter-frame prediction (MPEG encoding), which is executed by an encoder (not shown) to generate the MPEG encoded image described with reference to Fig. 21.
  • An example of a stream is shown.
  • GOPs Groups of Pictures
  • the frames B10 and B11 temporarily stored in the buffer are encoded using the frame I12 as a reference image.
  • B-pictures should be coded with reference to both past and future reference images, but images that can be referred to in the forward direction, such as frame B10 and frame B11, should be encoded. If not, the lost GOP flag is set, and encoding is performed using only backward prediction without performing forward prediction.
  • the frames B 13 and B 14 input while the frames B 10 and B 11 are being encoded are stored in the video buffer, and the next input frame P 15 is
  • the frame I 12 is encoded with reference to the forward prediction image.
  • frames B13 and F13 read from the video buffer are read.
  • the frame B14 is encoded by referring to the frame I12 as a forward prediction image and referring to the frame P15 as a backward prediction image.
  • the frames B16 and B17 are stored in the video buffer.
  • the P-picture is encoded by referring to the previously encoded I-picture or P-picture as the forward prediction image.
  • the B picture is temporarily stored in the video buffer and then coded by referring to the previously coded I or P picture as a forward prediction image or a backward prediction image.
  • an image stream is encoded over a plurality of G0Ps, and an encoded stream is generated.
  • an MPEG encoded stream encoded by the above-described method is recorded.
  • the DCT coefficient matrix obtained by the DCT transform has the characteristic that, when a normal image is subjected to the DCT transform, it is large in the low frequency component and small in the high frequency component.
  • information is compressed using quantization (dividing each DCT coefficient by a certain quantization unit and rounding the decimal point).
  • the quantization unit is set as an 8 x 8 quantization table, and a small value is set for the low frequency component and a large value is set for the high frequency component.
  • the quantization ID corresponding to the quantization matrix is added to the compressed data and passed to the decoding side. That is, the MPEG video decoder 122 in FIG.
  • FIG. 23 shows an example of MPEG decoding using inter-frame prediction.
  • the MPEG video stream input from the hard disk 112 to the playback circuit 121 for forward playback is processed by the playback circuit 121 so that the playback stream in the same arrangement of the input order as the input stream is played. It is output to the MPEG video decoder 122 as one system.
  • the reproduction stream is decoded according to the procedure described with reference to FIGS. 15 to 19, and is stored in the video buffer 33.
  • the buffer area in the video buffer 33 in which the frame I 12 decoded by the MPEG video decoder 122 is stored is referred to as buffer 1.
  • frames B10 and B11 input to the MPEG video decoder 122 are B pictures, but are stored in the buffer 1 of the video buffer 33 because the lost G0P flag is set.
  • the frame I 12 is decoded with reference to the backward reference image and stored in the video buffer 33.
  • the buffer area where the decoded frame B 10 is stored is referred to as a buffer 3.
  • the frame B10 is read from the buffer 3 of the video buffer 33, output to a display unit (not shown), and displayed. Then, after the decoded frame B 11 is accumulated in the buffer 3 of the video buffer 3 3 (that is, overwritten on the buffer 3), it is read out, outputted to a display unit (not shown), and displayed. You.
  • frame I 12 is read from buffer 1, output to a display unit (not shown), displayed, and at that timing, the next frame P 15 is sent to buffer 1 of video buffer 33.
  • the stored frame I 12 is decoded as a reference image and stored in the buffer 2 of the video buffer 33.
  • the lost GOP flag is not set for frames B10 and B11, frames B10 and B11 are not decoded because there is no image that can be referenced in the forward direction. In such a case, the frame I 12 is first output from the display output circuit 53 and displayed.
  • the next input frame B 13 uses the frame I 12 stored in the buffer 1 of the video buffer 33 as a forward reference image, and the frame P 15 stored in the buffer 2 as a backward reference image. It is referred to as an image, decoded, and stored in buffer 3. Then, by the processing of the display output circuit 53, the frame B13 is read from the buffer 3 of the video buffer 33, and during the output display processing, the next input frame B14 is Frame I 12 stored in buffer 1 of video buffer 3 3 is decoded as a forward reference image and frame P 15 stored in buffer 2 is referenced as a backward reference image and stored in buffer 3. Is done. Then, by the processing of the display output circuit 53, the buffer from the buffer 3 of the video buffer 33 is used. Frames B14 are read, output and displayed.
  • next input frame P18 is decoded using the frame P15 stored in the buffer 2 as a forward reference image.
  • frame I 12 stored in buffer 1 is not referred to thereafter, and thus decoded frame P 18 is stored in buffer 1 of video buffer 33. Stored. Then, at the timing when the frame P18 is accumulated in the buffer 1, the frame P15 is read from the buffer 2, output, and displayed.
  • the frames of GOP 1 are sequentially decoded, accumulated in the buffers 1 to 3, and sequentially read out and displayed.
  • the frame 122 which is an I-picture, does not require a reference image at the time of decoding, and thus is decoded as it is and stored in the buffer 2.
  • the frame Pie of GOP 1 is read, output, and displayed.
  • the subsequently input frames B20 and B21 of G ⁇ P2 are decoded using frame Pie of buffer 1 as a forward reference image and frame I22 of buffer 2 as a backward reference image, Stored in buffer 3 sequentially, read out and displayed.
  • the B picture at the head of G0P is decoded using the P picture of the previous G0P as a forward reference image.
  • each frame below GOP 3 is sequentially decoded, stored in buffers 1 to 3, sequentially read out and displayed.
  • the MPEG video decoder 122 executes decoding processing with reference to the quantization ID.
  • the reproduction circuit 12 1 shown in FIG. 20 stores the order of the GOP frames input to the stream buffer 61 based on the start code recorded in the start code buffer 62. Can be changed to generate a playback stream, and the MPEG video decoder 122 can decode all 15 frames.
  • the playback circuit 121 uses the start code recorded in the start buffer 62 to determine the order of the G0P frames input to the stream buffer 61. It is not enough to simply reverse the stream to generate a playback stream.
  • the first output and displayed frame must be frame P 2 e.
  • frame P 2 e In order to decode P 2 e, it is necessary to refer to frame P 2 b as a forward reference image, and to decode frame P 2 b, frame P 2 b is used as a forward reference image. 8 is required. Since a forward reference image is also required to decode frame P 28, after all, to decode frame P 2 e and output and display it, all the I and P Must be decrypted.
  • the video buffer 33 Requires a buffer area of 1 GOP (15 frames).
  • the video buffer 33 requires a buffer area for 15 frames, but it is not possible to reversely reproduce all the frames for 1 G0P.
  • the GOP contains a total of 5 frames of I-pictures or P-pictures.
  • At least 2G0P frames can be stored in the stream buffer 61, and the order of the frames in the playback stream generated by the playback circuit 121 is determined by MPEG. Determined based on the order of decoding for reverse playback of video decoder 122, and expressed in video buffer 33 at least as "total number of I-pictures and P-pictures included in 1 G0P + 2"
  • the part that crosses G0P can be stored. Continuously, all frames can be played back in reverse.
  • FIG. 24 shows an operation example of the MPEG reverse reproduction decoder.
  • the controller 34 controls the servo circuit 111 to output the MPEG encoded stream of G0P3 and then G0P2 from the hard disk 112 to the reproduction circuit 121.
  • the reproduction circuit 121 stores the MP0 encoded stream of G0P3 and then G0P2 in the stream buffer 61.
  • the reproduction circuit 122 reads the first frame I32 of the G0P3 from the stream buffer 61 and outputs it to the MPEG video decoder 122 as the first frame of the reproduction stream. Since the frame 132 is an I-picture, it does not require a reference image for decoding. Therefore, the frame 132 is decoded in the MPEG video decoder 122 and stored in the video buffer 33. In the video buffer 33, an area where the decoded frame I32 is stored is referred to as a buffer 1.
  • the data of each frame is decoded based on the header described with reference to FIG. 2 and the parameters described in the extension data.
  • the parameters of the respective decoders 45 in the MPEG video decoder 122 are decoded, supplied to the slice decoder control circuit 46, and used for decoding.
  • decoding is performed using GOP 1 sequence—header, sequence—extension, and the upper layer parameters described in GOPJieader (for example, the quantization matrix described above).
  • G0P 2 is decrypted
  • decoding is performed using the upper-layer parameters described in the above description, and when G0P 3 is decoded, the sequence header of G0P 3 is decoded.
  • Sequence—extension, and GOP—header—decoding is performed using the upper layer s lameness that is recorded and described.
  • the MPE G video decoder 122 converts the upper layer parameters when the I picture is decoded for the first time in each G0P.
  • the controller 34 holds the supplied upper layer parameters in a memory (not shown) provided therein.
  • the controller 34 monitors the decoding process executed in the MPEG video decoder 122, reads out the upper layer parameters corresponding to the frame being decoded from the internal memory, and sends the read data to the MPEG video decoder 122. Supply so that appropriate decryption processing can be performed.
  • the number above the frame number of the playback stream is the quantization ID, and each frame of the playback stream is the same as in the forward decoding described with reference to Fig. 23. Then, it is decoded based on the quantization ID.
  • the controller 34 has a memory inside and holds the upper layer coding parameters.
  • the memory connected to the controller 34 is The controller 34 holds the upper layer coding parameters in an external memory without reading the memory inside, reads it out as necessary, and supplies it to the MPEG video decoder 122. You may be able to do it.
  • the MPEG video decoder 122 may be provided with a memory for holding G0P upper layer coding parameters.
  • the encoding conditions such as the upper layer encoding parameters are known, the encoding conditions may be set in advance in the MPEG video decoder 122, and the upper layer encoding parameters do not change with G0P.
  • the controller 34 reads out the upper layer coding parameters for each G0P and sets them to the MPEG video decoder 122 for each frame, but only once at the start of operation. Encoding parameters may be set in the MPEG video decoder 122.
  • the reproduction circuit 122 reads out the frame P35 from the stream buffer 61 and outputs the frame P35 to the MPEG video decoder 122 as the next frame of the reproduction stream.
  • the frame P 35 is decoded using the frame I 32 recorded in the buffer 1 as a forward reference image, and is stored in the video buffer 33.
  • an area where the decoded frame P35 is accumulated is referred to as a "nofer 2".
  • the reproduction circuit 122 sequentially reads out the frame P38, the frame P3b, and the frame P3e from the stream buffer 61 and outputs them as a reproduction stream. These P-pictures are decoded by the MPEG video decoder 122 using the previously decoded P-picture as a forward reference image and stored in the video buffer 33. In the video buffer 33, areas where these decoded P-picture frames are accumulated are referred to as buffers 3 to 5.
  • the reproduction circuit 122 reads out the frame I22 of G0P2 from the stream buffer 61 and outputs it as a reproduction stream.
  • the frame I22 which is an I-picture, is decoded without requiring a reference image, and is stored in the video encoder 33.
  • the area where the decoded frame I22 is stored is referred to as buffer 6.
  • the frame P3e of G0P3 is read out from the buffer 5, output, and displayed as the first image of the reverse playback. You.
  • the reproduction circuit 122 reads the frame B3d of G0P3, that is, the frame to be first reversed-reproduced in the B-picture of G0P3, from the stream buffer 61. And output as a playback stream.
  • frame B 3 d is decoded as frame P 3 b of buffer 4 as a forward reference image and frame P 3 e of sofa 5 as a backward reference image, and stored in video buffer 33. Is done.
  • the area where the decoded frame B 3 d is stored is referred to as a buffer 7.
  • the frame B 3 stored in the buffer 7 is output after the frame / field conversion and the output video synchronization timing are performed. Is shown.
  • the reproducing circuit 122 reads out the frame B 3 c of GOP 3 from the stream buffer 61 and outputs it to the MPEG video decoder 122.
  • the frame B3c is, like the frame B3d, the frame P3b of the buffer 4 as the forward reference image and the frame P3e of the sofa 5 as the backward reference image. Decrypted.
  • the decoded frame P 3 c is stored in the sofa 7 (ie, overwrites the buffer 7) instead of the frame B 3 d, and the timing for the frame / field conversion and the output video synchronization timing is adjusted. Is output and displayed.
  • the reproduction circuit 122 reads out the frame P25 of G0P2 from the stream buffer 61 and outputs it to the MPEG video decoder 122.
  • the frame P25 of G0P2 is decoded using the frame I22 of the sofa 6 as a forward reference image. Since the frame P 3 e stored in the buffer 5 is no longer used as a reference image, the decoded frame P 25 is replaced by the buffer 5 instead of the frame P 3 e. Stored. Then, at the same time as the frame P25 is accumulated in the buffer 5, the frame P3b of the buffer 4 is read out and displayed.
  • the reproduction circuit 122 reads out the frame B3a of G0P3 from the stream buffer 61 and outputs it as a reproduction stream.
  • the frame B3a is decoded by using the frame P38 of the sofa 3 as a forward reference image and the frame P3b of the sofa 4 as a backward reference image, and the video buffer 33 Is stored in buffer 7.
  • the frame stored in buffer 7: B3a is output and displayed after frame / field conversion and timing adjustment to the output video synchronization timing.
  • the reproducing circuit 122 reads the frame B 39 of GOP 3 from the stream buffer 61 and outputs it to the MPEG video decoder 122 .
  • frame B39 like frame B3a, uses frame P38 of buffer 3 as the forward reference picture.
  • Image, frame P3b in buffer 4 is decoded as a backward reference image and stored in buffer 7 in place of frame B3a, frame / field conversion and output Timing adjustment to video synchronization timing Is output and displayed.
  • the reproduction circuit 122 reads out the frame P28 of G0P2 from the stream buffer 61 and outputs it to the MPEG video decoder 122.
  • the frame P28 of G0P2 is decoded using the frame P25 of the no-sofa 5 as a forward reference image. Since the frame P 3 b stored in the buffer 4 is no longer used as a reference image, the decoded frame P 28 is replaced by the buffer 4 instead of the frame P 3 b. Stored. Then, at the same timing that the frame P28 is accumulated on the sofa 4, the frame P38 of the sofa 3 is read out and displayed.
  • the I picture or P picture of G0P 2 is decoded and the I picture or G picture of G0P 3 is read out from the buffer 33 and displayed at the same time as the picture stored in the buffer 33. .
  • the remaining B pictures of G0P3 and the remaining P pictures of G0P2 are B37, B36, P2b, B Decoding is performed in the order of 3 4, B 3 3, and P 2 e.
  • the decoded B-pictures are stored in the buffer 7, read out sequentially and displayed.
  • the decoded P0-picture of G0P2 is sequentially stored in one of buffers 1 to 6 in which the frame whose reference has been completed is stored, and the P-picture of G0P3 already stored in one of buffers 1 to 6 is stored.
  • the P picture is read out and output during the B picture in that evening so as to meet the order of reverse playback.
  • the reproduction circuit 122 reads out the frame B31 of the G0P3, then the frame B30 from the stream buffer 61, and outputs it to the MPEG video decoder 122.
  • the frame P2e which is a forward reference image necessary for decoding the frames B31 and B30, is stored in a buffer 2
  • the backward reference image I32 is stored in a buffer.
  • the first two frames of G0P3, that is, the last frame to be displayed during reverse playback, are also decoded because they are stored in each of them. It becomes possible.
  • the decoded frames B31 and B30 are sequentially stored in the buffer 7, and output after the frame / field conversion and the timing adjustment to the output video synchronization timing are performed. Is displayed.
  • the controller 34 controls the servo circuit 1 1 1 to transfer GOP 1 from the hard disk 1 1 2 to GOP 1. It is read out and supplied to the reproduction circuit 122.
  • the playback circuit 1 2 1 executes a predetermined process, extracts the start code of GOP 1 and records it in the start code buffer 6 2, and also stores the encoded stream of GOP 1 in the stream buffer 6. Supply to 1 for storage.
  • the reproduction circuit 122 reads out the frame I 12 of GOP 1 from the stream buffer 61 and outputs it to the MPEG video decoder 122 as a reproduction stream. Since the frame I 12 is an I picture, it is decoded by the MPEG video decoder 122 without referring to another image, and is converted to the frame 1 32 of the buffer 1 which is not referred to in the subsequent processing. Instead, it is output to the sofa 1 and accumulated. At this time, the frame P 2 e is read from the buffer 2 and output, and the reverse reproduction display of G0P 2 is started.
  • the reproducing circuit 122 reads the frame to be firstly reverse-reproduced from the stream buffer 61 in the frame B 2 d of G0P 2, that is, the B victory of G0P 2, Output as a playback stream.
  • the frame B 2 d is decoded using the frame P 2 b of the buffer 3 as a forward reference image and the frame P 2 e of the buffer 2 as a backward reference image, and stored in the video buffer 33. Is performed.
  • the decoded frame B2d is stored in the buffer 7, and is output and displayed after frame / field conversion and timing adjustment to the output video synchronization timing are performed.
  • the remaining B pictures of G0P2 and the remaining P pictures of G 1P1 are represented by B2c, P15, B2a, B29, P18, ⁇ 2 7, ⁇ 26, ⁇ 1 b, ⁇ 24, ⁇ 23, Pie, ⁇ 21, ⁇ 20 Decoded in this order, and buffers 1 to 7 in which frames that have been sequentially referred to are stored. Stored in one of the Are read out and output in this order. Then, although not shown, finally, the remaining B-pictures of GOP 1 are decoded, sequentially stored in the buffer 7, read out in the reverse reproduction order, and output.
  • reverse playback was performed at the same speed as normal playback, but the playback circuit 121 played the MPEG video decoder at one-third the speed of normal playback of the playback stream.
  • the MPEG video decoder 122 executes decoding processing of only one frame in a normal processing time of three frames, and outputs the data to a display unit or a display device (not shown). By displaying the same frame at the display time, 1/3 speed forward playback and reverse playback can be performed by the same processing.
  • the display output circuit 53 repeatedly outputs the same frame, so that so-called still reproduction is also possible.
  • the arbitrary n is reduced to 1 / nth the speed. Forward reproduction and reverse reproduction can be performed by similar processing.
  • the normal playback speed is the same as the normal speed reverse playback, 1 / n speed reverse playback, still playback, 1 / n speed forward playback, and 1x speed forward playback. At any speed, smooth trick regeneration is possible.
  • the MPEG video decoder 122 since the MPEG video decoder 122 is a decoder compatible with MPEG2 4: 2: 2P @ HL, it has the ability to decode an MPEG2MP @ ML encoded stream at 6 times speed. Therefore, if the playback stream generated from the encoded MPEG-2 MP @ ML stream is output to the MPEG video decoder 122 at six times the speed of normal playback, the MPEG video decoder 122 Has the ability to decode an MPEG 2 MP @ ML encoded stream at 6 ⁇ speed, so by displaying a frame extracted every 6 frames on a display unit or display device (not shown) , 6 ⁇ forward playback and reverse playback can be performed by the same processing.
  • the encoding stream of MPEG 2 MP @ ML is reproduced at 6 ⁇ speed reverse reproduction, 1 ⁇ normal speed reverse reproduction, 1 / n ⁇ speed reverse reproduction, still reproduction, 1 / nx forward playback, 1x forward playback, 6x forward playback At any speed between, smooth trick playback is possible.
  • the playback device of the present invention can perform N-times forward playback and reverse playback by the same processing. Reverse playback, 1x reverse playback, 1 / nx reverse playback, still playback, 1 / nx forward playback, 1x forward playback, Nx forward playback In terms of speed, smooth trick playback becomes possible.
  • the series of processes described above can also be executed by software.
  • the software can execute various functions by installing programs installed in dedicated hardware or various programs installed in the software. For example, it is installed from a recording medium to a general-purpose personal computer.
  • this recording medium is a magnetic disk 101 (floppy disk) on which the program is recorded, which is distributed to provide the user with the program separately from the convenience store.
  • Optical discs 102 including CD-R0M (Compact Disk Read Only Memory), DVDs (Digital Versatile Disk)).
  • Magneto-optical discs 103 MD (Mini Disk))
  • a packaged medium including semiconductor memory 104 and the like.
  • steps for describing a program to be recorded on a recording medium are not limited to processes performed in chronological order in the order described, but are not necessarily performed in chronological order. Alternatively, it also includes processes that are individually executed.
  • the encoded stream is decoded, and the decoding process is performed in parallel, so that real-time operation can be performed with a feasible circuit scale. It is possible to realize a video decoder compatible with 4: 2: 2P @ HL.
  • an encoded stream is decoded by a plurality of slice decoders, and decoding processing is performed by the plurality of slice decoders in parallel.
  • a video decoder compatible with 4: 2: 2P @ HL that can operate in real time with an achievable circuit scale can be realized.
  • a source encoded stream is decoded for each slice constituting a picture of a source encoded stream, and a plurality of slice decoders are decoded.
  • slices are divided into multiple slices so that the decoding process performed by the slice decoder is the fastest regardless of the order of the slices included in the picture. Since it is assigned to the decoder, it is possible to realize a video decoder supporting 4: 2: 2P @ HL that can operate in real time with a feasible circuit scale.
  • a source encoded stream is decoded for each slice constituting a picture of the source encoded stream, and a plurality of slice decoders are decoded. Monitor the decoding status of a plurality of slice decoders, and control decoding of multiple slice decoders, regardless of the order of slices included in the picture. Since the appropriate slice is assigned, a video decoder that can operate in real time with a practicable circuit scale can be realized for a 4: 2: 2P book L.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Signal Processing For Recording (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Color Television Systems (AREA)

Description

明細書 復号装置および復号方法、 記録媒体、 並びにプログラム 技術分野 本発明は、 復号装置および復号方法、 並びに記録媒体に関し、 特に、 実現可能 な回路規模で実時間動作が可能な 4 : 2 : 2 P@HLに対応したビデオデコーダを実 現することができる復号装置および復号方法、 並びに記録媒体に関する。 景技術
MPEG2 (Moving Picture Coding Experts Group / Moving Picture Experts Gr oup2) ビデオは、 ISO/IEC ( International Standards Organization / Internat ional Electrotechnical Commission) 13818— 2、 および ITU- T (Internationa 1 Telecommunication Union— Telecommunication sector) 勧告 H.262に規定され ているビデオ信号の高能率符号化方式である。
MPEG2の符号化ス ト リームは、 符号化の手法によって決まるプロファイルと、 取 り扱う画素数によって決まるレベルによってクラス分けされ、 広範囲なアプリケ —シヨンに対応できるようになされている。 例えば、 MP@ML (メイン . プロフアイ ル · メイン ' レベル) は、 そのクラスの 1つであり、 DVB (Digital Video Broad cast) や、 DVD (Digital Versatile Disk) に広く実用化されている。 プロフアイ ルおよびレベルは、 図 5を用いて後述する sequence— extensionに記述される。 また、 放送局におけるビデオ信号の制作には、 ビデオの色差信号を、 従来のベ —スバン ドと同様の 4 : 2 : 2方式で取り扱い、 ビヅ トレートの上限を増加した 4 : 2 : 2 P ( 4 : 2 : 2プロファイル) が規定されている。 更に、 次世代の高 解像度ビデオ信号に対応するために、 HL (ハイ · レベル) が規定されている。 図 1に、 MPEG2の代表的なクラスと、 それぞれのクラスにおける、 各種パラメ一 夕の上限値を示す。 図 1には、 4 : 2 : 2 P@HL ( 4 : 2 : 2プロファイル ' ハイ • レベル) 、 4 : 2 : 2 P§ML ( 4 : 2 : 2 : プロファイル ' メイ ン ' レベル) 、 MP@HL (メイ ン ' プロファイル ' ハイ ' レベル) 、 MP@HL - 1440 (メイ ン · プロフ アイル ' ハイ · レベル - 1 440 ) 、 MP@ML (メイン ' プロファイル ' メイン · レ ベル) 、 MP@LL (メイン ' プロファイル ' 口一 ' レベル) 、 および、 SP@ML (シン ブル . プロファイル ' メイン · レベル) について、 ビッ トレート、 1ラインあた りのサンプル数、 1フレームあたりのライン数、 フレ一ム周波数、 およびサンブ ルの処理時間の上限値がそれそれ示されている。
図 1から、 4 : 2 : 2 P@HLのビヅ ト レ一 トの上限値は、 300 (Mbit/sec) で あり、 処理する画素数の上限値は、 62,668,800 (samples/sec) である。 一方、 M P@MPのビッ トレートの上限値は、 1 5 (Mbit/sec) であり、 処理する画素数の上 限値は、 10,368,000 (samples/sec) である。 すなわち、 4 : 2 : 2 P@HLをデコ —ドするビデオデコーダは、 MP@MLをデコードするビデオデコーダと比較して、 ビ ッ トレートで 2 0倍、 処理する画素数で約 6倍の処理能力が必要であることがわ かる。
図 2に、 MPEG2ビデオビヅ トス ト リームのレベル構造を示す。
最上位層であるピクチャ層の最初には、 sequence— headerが記述されている。 s equence— headerは、 MPEGビヅ トス ト リームのシーケンスのヘッダデ一夕を定義す る のである。 シ——ケンス最初の sequence— headerに、 sequence一 extensionが続力 21 ない場合、 このビッ トス ト リームには、 IS0/IEC11172— 2の規定が適応される。 シ 一ケンスの最初の sequence— headerにヽ sequence— extensionが続く場合ヽ その後発 生する全ての sequence一 headerの直後には、 sequence一 extensionが続く。 すなわち、 図 2 ίこ示す場合(こおレ、て(ま、 全ての sequence— headerの直後【こ、 sequence— extens ion^ く
sequence_extensionは、 MPEGビッ トス ト リームのシーケンス層の拡張データを 定義するものである。 sequence一 extensionは、 sequence—headerの直後にのみ発生 し、 かつ、 復号後、 およびフレームリオ一ダリング後にフ レームの損失がないよ うにするために、 ビッ トス ト リームの最後に位置する sequence— end_codeの直前に きてはならない。 また、 ビッ トス ト リーム中に、 sequence_extensionが発生した 場合、 それそれの picture— headerの直後に picture cording— extentionが続く。 GOP (group_of_picture) 内には、 複数の画像 (picture) が含まれる。 GOPJie aderは、 MPEGビッ トス ト リームの GOP層のヘッダデ一夕を定義するものであり、 更 (こ、 このビヅ 卜ス ト リーム中【こ(ま、 picture— headerと picture— coding—extension によって定義されたデータエレメン トが記述されている。 1枚の画像は、 pictur e_headerおよび picture— coding— extensionに続く picture—dataとして符号ィ匕され る。 また、 GOPJieaderに続く最初の符号化フレームは、 符号化された Iフレームで ある (すなわち、 GOPJieaderの最初の画像は Iピクチャである) 。 ITU- T勧告 H.2 62には、 sequence一 extensionおよび picture— cording— extentionの他、 各種の拡張 が定義されているが、 ここでは図示、 および説明は省略する。
picture—headerは、 MPEGビッ トス ト リームのピクチャ層のヘッダデ一夕を定義 するものであり、 picture— coding— extensionは、 MPEGビッ トス ト リームのビクチ ャ層の拡張データを定義するものである。
picture— dataは、 MPEGビヅ トス ト リームのスライス層およびマクロプロヅク層 に関するデータエレメン トを記述するものである。 picture_dataは、 図 2に示さ れるように、 複数の slice (スライス) に分割され、 スライスは、 複数の macroj) lock (マクロブロック) に分割される。
macro_blockは、 1 6 x 1 6の画素デ一夕で構成されている。 スライスの最初の マクロブロックおよび最後のマクロブロックは、 スキップマクロブロック (情報 を含まないマクロブロック) ではない。 マクロブロックは、 1 6 X 1 6の画素デ —夕で構成されている。 また、 各ブロックは、 8 X 8の画素データで構成されて いる。 また、 フレーム D C T (Discrete Cosine Transform: 離散コサイン変換) 符号化およびフィ一ルド D C T符号化の使用が可能なフレーム画像においては、 フレーム符号化とフィールド符号化の場合で、 マクロプロックの内部構成が相違 する。
マクロブロックは、 輝度成分および色差成分の 1区画を含む。 マクロブロックと いう用語は、 情報源および復号データまたは対応する符号化デ一夕成分のいずれ かを示す。 マクロブロックには、 4 : 2 : 0、 4 : 2 : 2および 4 : 4 : 4の 3 つの色差フォーマッ トがある。 マクロブロヅクにおけるブロックの順序は、 それ それの色差フォーマツ 卜によって異なる。 図 3 Aに、 4 : 2 : 0方式の場合におけるマクロブロックを示す。 4 : 2 : 0 方式の場合、 マクロブロックは、 4個の輝度 (Y) ブロックと、 それそれ 1個の色 差 (Cb, Cr) ブロックで構成される。 図 3 Bに、 4 : 2 : 2方式の場合における マクロプロヅクを示す。 4 : 2 : 2方式の場合、 マクロブロックは、 4個の輝度 (Y) プロヅクと、 それぞれ 2個の色差 (Cb, Cr) ブロックで構成される。
各マクロブロックは、 いくつかの方法により、 予測符号化処理が可能である。 予測モードは、 フィールド予測とフレーム予測の 2種類に大別される。 フィ一ル ド予測においては、 先に復号された、 1つ、 もしくは複数のフィールドのデ一夕 を使用し、 各フィールドについて、 独自に予測を行う。 フレーム予測は、 先に復 号された、 1つ、 も しくは複数のフレームを使用してフレームの予測を行う。 フ ィ一ルド画像内では、 予測は全てフィールド予測である。 一方、 フレーム画像に おいては、 フィールド予測、 またはフレーム予測のいずれかにより予測が可能で あり、 その予測方法は、 マクロブロックごとに選択される。 また、 マクロブロヅ クの予測符号化処理においては、 フィールド予測およびフレーム予測以外に、 1 6 X 8動き補償およびデュアルプライムの 2種類の特別予測モードを使用するこ とができる。
動きベク トル情報、 および他の周辺情報は、 各マクロブロックの予測誤差信号 とともに符号化される。 動きベク トルの符号化については、 可変長符号を使用し て符号化された最後の動きべク トルを予測ベク トルとして、 予測べク トルとの差 分ベク トルを符号化する。 表示可能なベク トルの最大長は、 画像毎にプログラム することができる。 また、 適切な動きベク トルの計算は、 符号器が行う。
そして、 picture— dataの次には、 sequence— headerと sequence— extens ionが配置 されてレ、る。 この sequence—headerと sequence— extens ioniこよつて言 3¾されたデ— 夕エレメン トは、 ビデオス ト リームのシーケンスの先頭に記述された sequence_h eaderと sequence— extens ionによつて記述されたデ一タエレメン 卜と全く同じであ る。 このように同じデ一夕をス ト リーム中に記述する理由は、 ビヅ トス ト リーム 受信装置側でデ一タス ト リ一ムの途中 (例えばピクチャ層に対応するビヅ トス ト リーム部分) から受信が開始された場合に、 シーケンス層のデ一夕を受信できな くなり、 ス ト リームをデコード出来なくなることを防止するためである。 最後の sequence—headerと sequence一 extensionとによって定義されたデ一夕エレ メン トの次、 つまり、 デ一タス ト リームの最後には、 シーケンスの終わりを示す 32ビヅ 卜の sequence_end— code; ^記述されてレヽる。
次に、 図 4乃至図 1 2を用いて、 それそれのデ一夕エレメン トの詳細について 説明する。
図 4【こ、 sequence— headerの —夕構成を示す。 sequence— header (こ含められる データエレメン 卜は、 sequence— header_code、 horizontal—size一 value、 vertica 1— size— value、 aspect— ratio— information、 frame— rate— code、 Dit— rate一 value、 marker一 bit、 vbv_buffer— size— value、 constrained— parameter— flag、 load— intr a— quantiser— mat rix、 intra— quantiser— matrix、 load— non— intra— quantiser—mat rl'X および non— intra— quantiser— matrix等から構成される。
sequencejieader— codeは、 シーケンス層のスタ一ト同期コ一ドを表すデータで ある。 horizontaし size_valueは、 画像の水平方向の画素数の下位 1 2ビヅ トから なるデ一夕である。 verticaし size_valueは、 画像の縦のライン数の下位 1 2ビヅ トからなるデ一夕である。 aspect— ratio—informationは、 画素のアスペク ト比 (縦横比) または表示画面アスペク ト比を表すデ一夕である。 frame_rate_codeは、 画像の表示周期を表すデータである。 bit_rate_valueは、 発生ビッ ト量に対する 制限のためのビヅ トレ一卜の下位 1 8ビッ トのデータである。
そして、 marker— bitは、 スタートコードエミユレ一シヨンを防止するために挿 入されるビッ トデータである。 vbv— buffer— size_valueは、 発生符号量制御用の仮 想バッファ VBV (Video Buffering Verifier) の大きさを決める値の下位 1 0 ビッ トデ—夕である。 COnstrained_parameter— flagは、 各パラメ一夕が制限以内 であることを示すデータである。 load-non— intra— quantiser— matrixは、 非イン ト ラ MB用量子化マ ト リ ックス · データの存在を示すデータである。
load_intra— quantiser— matrixは、 ィ ン トラ MB用量子化マト リ ックス · データ の存在を示すデ一夕である。 intra— quantiser一 matrixは、 イン トラ MB用量子ィ匕 マト リ ヅクスの値を示すデータである。 ποη一 intra— quantiser— matrixは、 非イン トラ MB用量子化マ ト リ ックスの値を表すデータである。
図 5に、 sequence— extensionのデ一夕構成 示 3。 sequence extensionは、 e xtension—start—code、 extension— start— code— identifier、 profi le— and— level— indication^ progressive一 sequence、 chroma— format、 horizontal—size— extensi on、 vertical— size— extension、 bit— rate— extension、 marker— bit、 vbv— buffer— size一 extension、 low_delay、 frame— rate— extension— n 、 および frame一 rate— ex tension— d等のデ一タエレメン 卜から構成されている。
extension— start— codeは、 ェクステンションデ一夕のスタート同期コ一ドを表 すデ—夕である。 extension_start_code_identifierは、 どの拡張データが送られ るかを示すデータである。 prof ile_and_leveし indicationは、 ビデオデ一夕のプ 口ファイルとレベルを指定するためのデータである。 progressive—sequenceは、 ビデオデ一夕が順次走査 (プログレヅシブ画像) であることを示すデータである。 chroma_formatは、 ビデオデータの色差フォーマツ トを指定するためのデ一夕であ る。 horizontal— size— extensi οηίま、 シ―ケンスへヅ夕、'の horiznta丄— size— value【こ 加える上位 2ビヅ トのデータである。 vertical— size_extensionは、 シーケンスへ ッダの vertical— size— valueにカロえる上位 2ビヅ 卜のデータである。
そして、 bit— rate— extensionは、 シーケンスへヅ夕"の bit— rate— valueにカロえる 上位 1 2ビッ トのデ一夕である。 marker— bitは、 スタートコ一ドエミュレーショ ンを防止するために挿入されるビッ トデータである。 vbv_buffer_size_extensio nは、 シーケンスヘッダの vbv— buffer_size_valueに加える上位 8ビッ トのデ一夕 である。 low_delayは、 Bビクチャを含まないことを示すデータである。 frame_r ate— extension— nは、 シーケンスへヅダの frame一 rate一 codeと組み合わせてフレ一 ムレ一トを得るためのデータである。 frame_rate— extension— dは、 シーケンスへ ヅダの frame_rate— codeと組み合わせてフレームレ一トを得るためのデ一夕である c 図 6に、 GOPjieaderのデータ構成を示す。 GOP_headerを表わすデ一夕エレメン 卜は、 group_start一 code、 time— code、 closed_gop、 および broken— linkから構成 される。
group— start_codeは、 GOP層の開始同期コードを示すデータである。 time_cod eは、 GOPの先頭ピクチャの時間を示すタイムコードである。 closed_gopは、 G0P内 の画像が他の G0Pから独立再生可能なことを示すフラグデ一夕である。 broken— li nkは、 編集などのために GOP内の先頭の Bビクチャが正確に再生できないことを示 すフラグデータである。
図 7【こ、 picture一 headerのデ一夕構成を示す。 picture— header【こ関するデ一夕 エレメン 卜は、 picture— start— code、 temporal— reference、 picture— coding— typ e、 vbv— delay、 full— pel— forward_vector、 forward_f_codeN full— pel— backward _vector、 および backward— f— code等から構成される。
picture— start一 codeは、 ビクチャ層の開始同期コードを表すデータである。 te mporaし referenceは、 ピクチャの表示順を示す番号で GOPの先頭でリセッ トされる デ一夕である。 picture— coding_typeは、 ピクチャタイプを示すデータである。 v bv— delayは、 ランダムアクセス時の仮想バヅファの初期状態を示すデータである。 ful l_pel— forward— vector、 forward— f_code、 ful 1— pel— backward— vector、 および backward— codeは、 MPEG2では使用されない固定データである。
図 8に、 picture— coding— extensionのデータ構成を示す。 picture— coding— ext ensionは、 extension— start—code、 extension— start— code— identifier、 f— code [0][0]、 f— code[0][l]、 f— code[l][0]、 f— code[ 1] [1]、 intra— dc—precision、 pi cture— structure、 top— field— firs t、 frame— pred— frame— dct、 concealment— moti on— vectors、 q一 scale— type、 intra— vlc_format、 alternate— scan、 repeat— firt一 field、 chroma— 420— type、 progressive— frame、 composite— display— flag、 v_a i s、 f ield一 sequence、 sub— carrier、 burst— amp litude、 および sub— carrier— phase 等から構成される。
extension— start_codeは、 ピクチャ層のエクステンションデータのスタートを 示す開始コードである。 extension— start— code_identifierは、 どの拡張デ一夕が 送られるかを示すコードである。 : L code[0][0]は、 フォワード方向の水平動きベ ク トル探索範囲を表すデ一夕である。 f_code[0][l]は、 フォワード方向の垂直動 きベク トル探索範囲を表すデ一夕である。 f— code[l][0]は、 バックワード方向の 水平動きベク トル探索範囲を表すデータである。 f_code[l][l]は、 バヅクワード 方向の垂直動きべク トル探索範囲を表すデータである。
intra— dc— precisionは、 DC係数の精度を表すデ一夕である。 ブロック内の各画 素の輝度および色差信号を表した行列 fに、 D C Tを施すと、 8 X 8の D C T係数 行列 Fが得られる。 この行列 Fの左上隅の係数を DC係数と呼ぶ。 DC係数はブロッ ク内の平均輝度、 平均色差を表わす信号である。 picture_structureは、 フレーム ス トラクチャかフィールドス トラクチャかを示すデ一夕であり、 フィールドス ト ラクチャの場合は、 上位フィ一ルドか下位フィ一ルドかもあわせて示すデータで ある。 top_field_firstは、 フレームス トラクチャの場合、 最初のフィールドが上 位か下位かを示すデータである。 f rame— predictive— frame— dctは、 フレ一ムス 卜 ラクチャの場合、 フレーム ' モード D C Tの予測がフレーム · モ一ドだけである ことを示すデータである。 concealment— motion— vectorsは、 イン トラマクロブロ ックに伝送エラ一を隠蔽するための動きべク トルがついていることを示すデ一夕 である。
q— scale— typeは、 線形量子化スケールを利用するか、 非線形量子化スケールを 利用するかを示すデータである。 intra— vlcjormatは、 イントラマクロブロック に、 別の 2次元 VLC (Variable Length Cording) を使うか否かを示すデータであ る。 alternate— scanは、 ジグザグスキャンを使うか、 オルタネート · スキャンを 使うかの選択を表すデ一タである。 repeat_firt— f ieldは、 2 : 3プルダウンの際 に使われるデ一夕である。 chroma_420_typeは、 信号フォーマッ トが 4 : 2 : 0の 場合、 次の progressive— frame と同じ値であり、 そうでない場合は 0を表すデ一 夕である。 progressive_fraDieは、 このピクチャが、 順次走査かイン夕レ一スフィ —ルドかを示すデ一夕である。 composite— display— flagは、 ソース信号がコンポ ジッ ト信号であったかどつかを示すテ一タである。 V— axis、 field— sequence、 su b_carrier、 burst—amp 1 itude、 および sub— carrier— pnaseは、 ソース信号がコンポ ジッ ト信号の場合に使われるデ一夕である。
図 9に、 picture_dataのデ一タ構成を示す。 picture_data () 関数によって定 義されるデータエレメン トは、 slice () 関数によって定義されるデ一夕エレメン トである。 この si ice () 関数によって定義されるデ一夕エレメン トは、 ビッ トス ト リ一ム中に少なく とも 1個記述されている。
slice () 関数は、 図 1 0に示されるように、 slice_start— code、 quantiser— s cale— code、 intra— si ice—flag、 intra— slice、 reserved— bits、 extra— bit— si ice、 および extra— information_slice等のデ一夕エレメン トと、 macroblock () 関数に よって定義される。 slice— start— codeは、 slice () 関数によって定義されるデータエレメン トのス 夕一トを示すス夕一トコ一ドである。 quantiser— scale— codeは、 このスライス層 に存在するマクロプロックに対して設定された量子化ステツプサイズを示すデ一 夕であるが、 マクロブロック毎に、 quantiser— scale—codeが設定されてレヽる場合 には、 各マク口ブロヅクに対して設定された macroblock— quantiser— scale— codeの デ一夕が優先して使用される。
intra— si ice— flagは、 ビッ トス ト リーム中に intra— si iceおよび reserved— bits が存在するか否かを示すフラグである。 intra_sliceは、 スライス層中にノンイン トラマクロプロックが存在するか否かを示すデ一夕である。 スライス層における マクロブロックのいずれかがノンイン トラマクロブロ ヅクである場合には、 intr a— si iceは 「0」 となり、 スライス層におけるマクロブロックの全てがノンイン ト ラマクロブロックである場合には、 intra_sliceは 「 1」 となる。 reserved— bits は、 7ビッ トのデータであって 「◦」 の値を取る。 extra_bit— sliceは、 追加の情 報が存在することを示すフラグであって、 次に extra_information_sliceが存在す る場合には 「 1」 に設定され、 追加の情報が存在しない場合には 「0」 に設定さ れる。
これらのデ一夕エレメン トの次には、 macroblock () 関数によって定義された デ一夕エレメン トが記述されている。 macroblock () 関数は、 図 1 1に示すよう に、 macroblock— escape、 macroblock— address— increments および quantiser— sea le_codeヽ および marker— bit等のデ一夕エレメン トと、 macroblockjnodes () 関数、 motion_vectors (s) 関数、 および coded— block_pattern () 関数によって定義さ れたデ一夕エレメン トを記述するための関数である。
macroblock— escapeは、 参照マク口ブロヅクと前のマク口ブロヅクとの水平方向 の差が 34以上であるか否かを示す固定ビッ ト列である。 参照マクロブロックと 前のマクロブロヅクとの水平方向の差が 34以上の場合には、 macroblock— addre ss— incrementの値に 33が加えられる。 macroblock— address— incrementは、 参照 マクロブロックと前のマクロブロックとの水平方向の差を示すデ一夕である。 も し、 macroblock— address— incrementの目 ijに macroblock— escape力 s 1つ存在するので あれば、 この macroblock address— incre腿 tの値に 3 3を加えた値が、 実際の参 照マクロブロックと前のマクロブロックとの水平方向の差分を示すデータとなる。 quanti ser— scale_codeは、 各マク口ブロヅクに設定された量子化ステヅプサイ ズを示すデ一夕であり、 macrobl ock_quantが 「 1」 のときだけ存在する。 各スラ ィス層には、 スライス層の量子化ステヅプサイズを示す s l i ce_quanti ser— scale— codeが設定されているが、 参照マクロブロックに対して scale_codeが設定されて いる場合には、 この量子化ステツプサイズを選択する。
macroblock一 address— incrementの次(こ ίま、 mac rob lock一 modes ( ) 数(こよって 定義されるデータエレメン トが記述されている。 macrob lockjnodes ( ) 関数は、 図 1 2 ίこ示すよう【こ、 macrobl ock— type、 frame— motion— type、 f i e l d_motion_typ e、 dct_type等のデ一夕エレメン トを記述するための関数である。 niacroblock_ty peは、 マクログブロックの符号化タイブを示すデ一夕である。
macroblock— moti on— forward又は macroblockjot ion— backward力 「 1」 であり、 ピクチャ構造がフレームであり、 更に frame— pred_frame_dctが 「 0」 である場合 には、 macroblock— typeを表わ ?—タエレメン トの次に frame— motion— typeを表 わすデ一夕エレメン トが記述されている。 なお、 この frame_pred_frame_dctは、 frame— mot ion_typeがビヅ トス ト リーム中に存在するか否かを示すフラグである。 f rame—motion— typeは、 フレームのマクロブロックの予測タイプを示す 2 ビッ ト のコードである。 予測ベク トルが 2個で、 フィ一ルドベースの予測タイプであれ ば、 framejnot ion_typeは 「 0 0」 であり、 予測ベク トルが 1個で、 フィールドべ —スの予測夕ィプであれば、 frame_motion— typeは 「 0 1」 であり、 予測べク トル が 1個で、 フレームベースの予測夕イブであれば、 framejnotion_typeは 「 1 0」 であり、 予測ベク トルが 1個で、 デュアルブライムの予測タイプであれば、 fram e_inotion— typeは 「 1 1」 である。
f ie ld—mot ion— typeは、 フィ一ルドのマク口ブロヅクの動き予測を示す 2 ビッ ト のコ一ドである。 予測べク トルカ 1個でフィ一ルドベースの予測タイプであれば 「 0 1」 であって、 予測べク トルカ 2個で 1 8 X 8マクロブロヅクベースの予測 タイプであれば 「 1 0」 であって、 予測べク トルが 1個でデュアルブライムの予 測タイプであれば 「 1 1」 である。
ピクチャ構造がフレームであり、 frame—pred—f raffle dctが、 そのビッ トス ト リ ——ム中に: frame— mot ion— type力 s存在することを示し、 f rame一 pred— f rame— dct力 s、 そ のビッ トス ト リーム中に dct_typeが存在することを示している場合、 macroM ock —typeを表わすデータエレメン 卜の次には dct_typeを表わすデータエレメン 卜が記 述されている。 なお、 dct— typeは、 D C Tがフレーム D C Tモードか、 フィ一ル ド D C Tモードかを示すデータである。
MPEG2のス ト リームにおいて、 以上説明したそれそれのデータエレメントは、 s tart codeと称される、 特殊なビッ トパターンで開始される。 これらのスタートコ ードは、 別の状況では、 ビデオス ト リーム中に現れない特定のビッ トパターンで ある。 各スタートコードは、 スタートコードプレフィクスと、 それに続くスタ一 トコ一ド値から構成される。 スタートコードプレフィ クスは、 ビヅ ト列 "0000 0 000 0000 0000 0000 0001" である。 スタートコ一ド値は、 スタートコードのタイ プを識別する 8ビッ 卜の整数である。
図 1 3に、 MPEG2の各 start codeの値を示す。 多くのス夕一トコ一ドは、 1個の スタートコード値より示される。 しかし、 sl i ce— start— codeは、 0 1乃至 AFの複 数のス夕一トコ一ド値により示され、 このスタートコード値は、 スライスに対す る垂直位置を表わす。 これらのス夕一トコ一ドは、 全てバイ ト単位であるため、 スタートコ一ドブレフィクスの最初のビッ トがバイ トの最初のビヅ 卜になるよう に、 ス夕一トコ一ドブレフィタスの前に、 複数のビッ ト "0" が挿入され、 ス夕一 トコ一ドがバイ ト単位になるように調整される。
図 1 4は、 従来の MP@MLに対応した MPEGビデオデコ一ダの回路構成を示すブロッ ク図である。
MPEGビデオデコ一ダは、 ス ト リーム入力回路 1 1、 バッファ制御回路 1 2、 ク ロック発生回路 1 3、 スタ一トコ一ド検出回路 1 4、 デコーダ 1 5、 動き補償回 路 1 6、 および表示出力回路 1 7から構成される I C ( integrated c ircui t) 1 と、 ス ト リームバッファ 2 1およびビデオバッファ 2 2で構成され、 例えば、 DR AM (Dynami c Random Access Memory) 力 らなるノ ヅファ 2により構成される。
I C 1のス ト リーム入力回路 1 1は、 高能率符号化された符号化ス ト リームの 入力を受け、 バッファ制御回路 1 2に供給する。 バッファ制御回路 1 2は、 クロ ック発生回路 1 3から供給される基本クロックに従って、 入力された符号化ス ト リームをノ ヅファ 2のス ト リームノ ヅファ 2 1 に入力する。 ス ト リームバッファ 2 1は、 MP@MLのデコ一ドに要求される V B Vバッファサイズである 1, 8 3 5, 0 0 8 ビッ 卜の容量を有する。 ス ト リームバッファ 2 1 に保存されている符号化ス ト リ一ムは、 バヅファ制御回路 1 2の制御に従って、 先に書き込まれたデータか ら順に読み出され、 スタートコード検出回路 1 4に供給される。 スタートコード 検出回路 1 4は、 入力されたス ト リームから、 図 1 3を用いて説明したスタート コードを検出し、 検出したスタートコ一ドおよび入力されたス ト リ一ムをデコー ダ 1 5に出力する。
デコーダ 1 5は、 入力されたス ト リームを MPEGシンタックスに基づいて、 デコ —ドする。 デコーダ 1 5は、 入力されたスタートコードに従って、 まず、 ビクチ ャ層のヘッダパラメータをデコードし、 それを基に、 スライス層をマクロブロッ クに分離してマクロブロックをデコードし、 その結果得られる予測べク トルおよ び画素を、 動き補償回路 1 6に出力する。
MPEGでは、 画像の時間的冗長性を利用して、 近接した画像間で動き補償した差 分を得ることにより、 符号化効率を改善している。 MPEGビデオデコーダでは、 動 き補償を用いた画素に対しては、 現在デコードしている画素にその動きベク トル が示す参照画像の画素デ一夕を加算することにより動き補償を行い、 符号化前の 画像デ一夕に復号する。
デコーダ 1 5から出力されるマクロプロックが動き補償を使用していない場合、 動き補償回路 1 6は、 その画素データを、 バッファ制御回路 1 2を介して、 バッ ファ 2のビデオバッファ 2 2に書き込み、 表示出力に備えるとともに、 この画素 デ一夕が、 他の画像の参照データとされる場合に備える。
デコーダ 1 5から出力されるマクロプロックが動き補償を使用している場合、 動き補償回路 1 6は、 デコーダ 1 5から出力される予測ベク トルに従って、 バッ ファ制御回路 1 2を介して、 バッファ 2のビデオバッファ 2 2から参照画素デー 夕を読み出す。 そして、 読み出した参照画素データを、 デコーダ 1 5から供給さ れた画素データに加算し、 動き補償を行う。 動き補償回路 1 6は、 動き補償を行 つた画素データを、 バッファ制御回路 1 2を介してバッファ 2のビデオバッファ 2 2に書き込み、 表示出力に備えるとともに、 この画素データが、 他の画素の参 照データとされる場合に備える。
表示出力回路 1 7は、 デコードした画像デ一夕を出力するための同期タイ ミン グ信号を発生し、 このタイ ミングを基に、 バッファ制御回路 1 2を介して、 ビデ ォバッファ 2 2から画素データを読み出し、 復号ビデオ信号として出力する。
以上説明したように、 MPEG2ス ト リームは階層構造を有している。 図 2を用いて 説明したピクチャ層の sequence一 header乃至 pi cture— coding— extens ionのデ一夕は、 図 1 を用いて説明したプロファイルおよびレベルが異なる場合においても、 その データ量は、 あまり変更されない。 一方、 スライス層以下のデータ量は、 符号化 する画素数に依存する。
図 1 より、 HLにおいて、 1枚のピクチャで処理しなければならないマクロプロ ヅクの数は、 MLに対して約 6倍になる。 更に、 図 3 Bより、 4 : 2 : 2 Pにおい て、 1個のマクロブロックで処理するブロックの数は、 MPの 4 / 3倍になる。
すなわち、 図 1 4を用いて説明した MP@MLに対応したビデオデコーダで、 4 : 2 : 2 P @HLの符号化スト リームを復号しょうとした場合、 V B Vバッファサイズお よび画素数の増加に伴って、 ス ト リ一ムバヅファ 2 1 のバヅフアサイズが不足す る。 また、 ビヅ ト レ一卜の増加に伴い、 入力ス ト リームのス ト リームバッファ 2 1へのアクセスが増加し、 画素数の増加に伴って、 動き補償回路 1 6のビデオバ ヅファ 2 2へのアクセスが増加するため、 バッファ制御回路 1 2の制御が間に合 わなくなる。 更に、 ビヅ トレ一卜の増加、 マクロプロヅクおよびブロック数の増 加に伴って、 デコーダ 1 5の処理が間に合わなくなる。
今日の半導体技術の進展により、 信号処理回路、 メモリ (バッファ) 回路とも、 その動作速度は著しく向上している。 しかしながら、 現在の ML@MPの復号技術では、 4 : 2 : 2 P @HLを復号するまでには至っていない。 一般に、 このような高速の信 号処理を行おうとした場合、 回路規模が大幅に増加し、 部品点数の増加および消 費電力の増加を招いてしまう。 発明の開示 本発明はこのような状況に鑑みてなされたものであり、 今日の半導体技術を用 いて、 実現可能な回路規模で実時間動作が可能な 4 : 2 : 2 P @HLに対応したビデ ォデコーダを実現することができるようにするものである。
本発明の第 1の復号装置は、 符号化ス ト リームを復号する複数の復号手段と、 複数の復号手段を並行して動作させるように制御する復号制御手段とを備えるこ とを特徴とする。
複数の復号手段には、 復号処理の終了を示す信号を復号制御手段に出力させる ようにすることができ、 復号制御手段には、 復号処理の終了を示す信号を出力し た復号手段に、 符号化ス ト リームを復号させるように制御させることができる。 符号化ス 卜 リームをバッファリングする第 1のバッファ手段と、 符号化ス ト リ ームから、 符号化ス ト リームに含まれる所定の情報の単位の始ま りを表わすスタ ートコードを読み出すとともに、 第 1のバッファ手段に、 スタートコードが保持 されている位置に関する位置情報を読み出す読み出し手段と、 読み出し手段によ り読み出された、 スタートコ一ドおよび位置情報をバッファリングする第 2のバ ヅファ手段と、 第 1のバッファ手段による符号化ス ト リームのバッファリング、 および第 2のバッファ手段によるスタートコ一ドおよび位置情報のバッフアリン グを制御するバッファリング制御手段とを更に備えさせるようにすることができ る。
符号化ス ト リームは、 IS0/IEC 13818— 2および ITU— T勧告 H.262に規定された MP EG2の符号化ス ト リームとすることができる。
複数の復号手段により復号され、 出力された複数の画像データのうちの所定の ものを選択する選択手段と、 選択手段により選択された画像データの入力を受け、 必要に応じて動き補償を施す動き補償手段とを更に備えさせるようにすることが できる。
復号手段には、 復号処理が終了したことを示す終了信号を選択手段に出力させ るようにすることができ、 選択手段には、 複数の復号手段のそれそれの処理状態 に対応する値を記憶する記憶手段を有し、 記憶手段の値が全て第 1の値になった 場合、 復号処理が終了したことを示す終了信号を出力している復号手段に対応す る記憶手段に記憶されている値を、 第 1の値から第 2の値に変更させ、 対応する 記憶手段に記憶されている値が第 2の値である復号手段により復号された画像デ —夕のうち、 いずれかの画像データを選択させ、 選択された画像データを復号し た復号手段に対応する記憶手段に記憶されている値を第 1の値に変更させるよう にすることができる。
選択手段により選択された画像データ、 または動き補償手段により動き補償が 施された画像データを保持する保持手段と、 選択手段により選択された画像デ一 夕、 および動き補償手段により動き補償が施された画像デ一夕の保持手段による 保持を制御する保持制御手段とを更に備えさせるようにすることができる。
保持手段には、 画像データの輝度成分と色差成分をそれそれ分けて保持させる ようにすることができる。
復号手段に供給される符号化ス ト リームのフレームの順番を変更する変更手段 を更に備えさせるようにすることができ、 保持手段には、 画像シーケンス内のィ ン トラ符号化フレームおよび前方向予測符号化フレームを合計したフレーム数よ り少なく とも 2つ多い数のフレームを保持させるようにすることができ、 変更手 段には、 符号化ス ト リームを逆転再生させるための所定の順番になるように、 符 号化ス ト リ一ムのフレームの順番を変更させるようにすることができる。
保持手段により保持されている画像デ一夕を読み出して出力する出力手段を更 に備えさせるようにすることができ、 所定の順番とは、 イントラ符号化フレーム、 前方向予測符号化フレーム、 双方向予測符号化フレームの順番であり、 かつ、 双 方向予測符号化フレーム内での順番は、 符号化の順番とは逆であるものとするこ とができ、 出力手段には、 復号手段により復号され、 保持手段により保持されて いる双方向予測符号化フレームを順次読み出して出力するとともに、 所定の夕ィ ミングで、 保持手段により保持されているイン トラ符号化フレーム、 もしくは前 方向予測符号化フレームを読み出して、 双方向予測符号化フレームの間の所定の 位置に挿入して出力させるようにすることができる。
所定の順番とは、 出力手段によりイ ン トラ符号化フレーム、 もしくは前方向予 測符号化フレームが出力されるタイ ミングで、 復号手段により復号された、 一つ 前の画像シーケンスのイン トラ符号化フレームもしくは前方向予測符号化フレー ムが、 保持手段により保持されるような順番であるものとすることができる。 符号化ス ト リームを復号するために必要な情報を記録する記録手段と、 記録手 段による情報の記録および情報の復号手段への供給を制御する制御手段とを更に 備えさせるようにすることができ、 符号化ス ト リームは、 情報を含むものとする ことができ、 制御手段には、 復号手段の復号処理に必要な情報を選択して、 復号 手段に供給させるようにすることができる。
制御手段が復号手段に供給する情報は、 復号手段により復号されているフレー ムに対応する上位層符号化パラメ一夕であるものとすることができる。
保持手段により保持されている画像デ一夕を読み出して出力する出力手段を更 に備えさせるようにすることができ、 復号手段は、 符号化ス ト リームを通常再生 に必要な処理速度の N倍速で復号することが可能であるものとすることができ、 出力手段は、 保持手段により保持されている画像データのうち Nフレーム毎の画 像デ一夕を出力することが可能であるものとすることができる。
符号化ス ト リームを保持する第 1の保持手段と、 符号化ス ト リームから、 符号 化ス ト リームに含まれる所定の情報の単位の始まりを表わすスタートコードを読 み出すとともに、 第 1の保持手段に、 スタートコードが保持されている位置に関 する位置情報を読み出す読み出し手段と、 読み出し手段により読み出された、 ス タートコードおよび位置情報を保持する第 2の保持手段と、 第 1の保持手段によ る符号化ス ト リームの保持、 および第 2の保持手段によるスタートコードおよび 位置情報の保持を制御する第 1の保持制御手段と、 複数の復号手段により復号さ れ、 出力された複数の画像データのうちの所定のものを選択する選択手段と、 選 択手段により選択された画像データの入力を受け、 必要に応じて動き補償を施す 動き補償手段と、 選択手段により選択された画像データ、 または動き補償手段に より動き補償が施された画像データを保持する第 3の保持手段と、 選択手段によ り選択された画像データ、 および動き補償手段により動き補償が施された画像デ —夕の第 3の保持手段による保持を、 第 1の保持制御手段とは独立して制御する 第 2の保持制御手段とを更に備えさせることができる。
本発明の第 1の復号方法は、 符号化ス ト リームを復号する複数の復号ステップ と、 複数の復号ステツプの処理を並行して動作させるように制御する復号制御ス テツブとを含むことを特徴とする。
本発明の第 1の記録媒体に記録されているプログラムは、 符号化ス ト リームを 復号する複数の復号ステツプと、 複数の復号ステツプの処理を並行して動作させ るように制御する復号制御ステツプとを含むことを特徴とする。
本発明の第 1のプログラムは、 符号化ス ト リームを復号する複数の復号ステツ プと、 複数の復号ステツプの処理を並行して動作させるように制御する復号制御 ステップとを含むことを特徴とする。
本発明の第 2の復号装置は、 符号化ス ト リームを復号する複数のスライスデコ —ダと、 複数のスライスデコーダを並行して動作させるように制御するスライス デコーダ制御手段とを備えることを特徴とする。
本発明の第 2の復号方法は、 符号化ス ト リームを復号する複数のスライスデコ ーダによる復号を制御する復号制御ステツプと、 復号制御ステツプを並行して処 理させるように制御するスライスデコーダ制御ステツブとを含むことを特徴とす る。
本発明の第 2の記録媒体に記録されているプログラムは、 符号化ス ト リ一ムを 復号する複数のスライスデコーダによる復号を制御する復号制御ステツプと、 復 号制御ステッブを並行して処理させるように制御するスライスデコーダ制御ステ ップとを含むことを特徴とする。
本発明の第 2のプログラムは、 符号化ス ト リームを復号する複数のスライスデ コーダによる復号を制御する復号制御ステツブと、 復号制御ステツブを並行して 処理させるように制御するスライスデコーダ制御ステツプとを含むことを特徴と する。
本発明の第 3の復号装置は、 ソース符号化ス ト リームのビクチャを構成するス ライス毎に、 ソース符号化ス ト リ一ムをデコ一ドする複数のスライスデコ一ダと、 複数のスライスデコーダのデコ一ドステ一タスを監視するとともに、 複数のスラ イスデコ一タを制御する制御手段とを備え、 制御手段は、 ピクチャに含まれるス ライスの順番に関係なく、 スライスデコーダによるピクチャのデコ一ド処理が最 も早くなるように、 スライスを複数のスライスデコーダに割り当てることを特徴 とする。
本発明の第 3の復号方法は、 複数のスライスデコーダによる、 ソース符号化ス トリームのピクチャを構成するスライス毎のソース符号化ス ト リ一ムのデコード 処理を制御するデコード処理制御ステツプと、 複数のスライスデコーダのデコ一 ドステ一タスを監視するとともに、 複数のスライスデコ一夕を制御する制御ステ ッブとを含み、 制御ステップの処理では、 ピクチャに含まれるスライスの順番に 関係なく、 スライスデコーダにおいて実行されるデコ一ド処理が最も早くなるよ うに、 スライスを複数のスライスデコーダに割り当てることを特徴とする。
本発明の第 3のプログラムは、 複数のスライスデコーダによる、 ソース符号化 ス ト リームのピクチャを構成するスライス毎のソース符号化ス ト リームのデコ一 ド処理を制御するデコ一ド処理制御ステヅプと、 複数のスライスデコーダのデコ 一ドステ一夕スを監視するとともに、 複数のスライスデコ一夕を制御する制御ス テヅプとを含み、 制御ステップの処理では、 ピクチャに含まれるスライスの順番 に関係なく、 スライスデコーダにおいて実行されるデコ一ド処理が最も早くなる ように、 スライスを複数のスライスデコーダに割り当てることを特徴とする。 本発明の第 4の復号装置は、 ソース符号化ス ト リームのビクチャを構成するス ライス毎に、 ソース符号化ス ト リ一ムをデコードする複数のスライスデコーダと、 複数のスライスデコーダのデコードステ一タスを監視するとともに、 複数のスラ イスデコ一夕を制御する制御手段とを備え、 制御手段は、 ビクチャに含まれるス ライスの順番に関係なく、 複数のスライスデコーダのうちデコードが終了したス ライスデコーダに、 デコードすべきスライスを割り当てることを特徴とする。 本発明の第 4の復号方法は、 複数のスライスデコーダによる、 ソース符号化ス ト リームのピクチャを構成するスライス毎のソース符号化スト リ一ムのデコード 処理を制御するデコ一ド処理制御ステツプと、 複数のスライスデコーダのデコ一 ドステ一タスを監視するとともに、 複数のスライスデコ一夕を制御する制御ステ ヅブとを含み、 制御ステップの処理では、 ビクチャに含まれるスライスの順番に 関係なく、 複数のスライスデコーダのうち、 デコード処理制御ステップの処理に よりデコード処理が終了したスライスデコーダに、 デコードすべきスライスを割 り当てることを特徴とする。
本発明の第 4のプログラムは、 複数のスライスデコーダによる、 ソース符号化 ス ト リームのピクチャを構成するスライス毎のソース符号化ス ト リ一ムのデコ一 ド処理を制御するデコ一ド処理制御ステツプと、 複数のスライスデコーダのデコ ―ドステ一タスを監視するとともに、 複数のスライスデコ一夕を制御する制御ス テヅブとを含み、 制御ステップの処理では、 ピクチャに含まれるスライスの順番 に関係なく、 複数のスライスデコーダのうち、 デコード処理制御ステヅプの処理 によりデコード処理が終了したスライスデコーダに、 デコードすべきスライスを 割り当てることを特徴とする。
本発明の第 1の復号装置、 復号方法、 およびプログラムにおいては、 符号化ス ト リ一ムが復号され、 復号処理を並行して動作させるように、 復号処理が制御さ れる。
本発明の第 2の復号装置、 復号方法、 およびプログラムにおいては、 符号化ス ト リームが複数のスライスデコーダによって復号され、 複数のスライスデコーダ による復号処理が並行して行われる。
本発明の第 3の復号装置、 復号方法、 およびプログラムにおいては、 ソース符 号化ス ト リームのピクチャを構成するスライス毎に、 ソース符号化ス ト リームが デコードされ、 複数のスライスデコーダのデコードステ一タスが監視されるとと もに、 複数のスライスデコ一夕が制御され、 ビクチャに含まれるスライスの順番 に関係なく、 スライスデコーダにおいて実行されるデコ一ド処理が最も早くなる ように、 スライスが複数のスライスデコーダに割り当てられる。
本発明の第 4の復号装置、 復号方法、 およびプログラムにおいては、 ソース符 号化ス ト リームのピクチャを構成するスライス毎に、 ソース符号化ス ト リームが デコードされ、 複数のスライスデコーダのデコ一ドステ一タスが監視されるとと もに、 複数のスライスデコ一夕が制御され、 ビクチャに含まれるスライスの順番 に関係なく、 複数のスライスデコーダのうちデコ一ドが終了したスライスデコ一 ダに、 デコードすべきスライスが割り当てられる。
図面の簡単な説明 図 1は、 MPEG2の、 プロファイルとレベルによる、 各パラメ一夕の上限値を説明 するための図である。 図 2は、 MPEG2ビットストリームの階層構造を説明するための図である。
図 3 A, Bは、 マクロブロック層を説明するための図である。
図 4は、 sequencejieaderのデータ構造を説明するための図である。
図 5は、 sequence— extensi onのデ一夕構造を説明するための図である。
図 6は、 GOPJieaderのデ一夕構造を説明するための図である。
図 7は、 pi cture_headerのデータ構造を説明するための図である。
図 8は、 pi cture_coding_extens ionのデ一夕構造を説明するための図である。 図 9は、 pi cture— dataのデータ構造を説明するための図である。
図 1 0は、 s l i ceのデータ構造を説明するための図である。
図 1 1は、 macroblockのデータ構造を説明するための図である。
図 1 2は、 macroblock—modesのデ一夕構造を説明するための図である。
図 1 3は、 スタートコードを説明するための図である。
図 1 4は、 従来の MUMPの符号化ストリームをデコードするビデオデコーダの構 成を示すプロヅク図である。
図 1 5は、 本発明を適応したビデオデコーダの構成を示すブロック図である。 図 1 6は、 スライスデコーダ制御回路の処理について説明するためのフローチ ャ一トである。
図 1 7は、 スライスデコーダ制御回路の処理の具体例を説明するための図であ る。
図 1 8は、 動き補償回路によるスライスデコーダの調停処理を説明するための フローチャートである。
図 1 9は、 動き補償回路によるスライスデコーダの調停処理の具体例を説明す るための図である。
図 2 0は、 図 1 5の MPEGビデオデコーダを備えた再生装置の構成を示すブロッ ク図である。
図 2 1は、 エンコーダに入力されて符号化される MPEGビデオ信号のビクチャ構 成を示す図である。
図 2 2は、 フレーム間予測を用いた MPEGの画像符号化の例を示す図である。 図 2 3は、 MPEG符号化ス トリームが順方向に再生される場合の復号処理につい て説明するための図である。
図 2 4は、 MPEG符号化ス ト リームが逆転再生される場合の復号処理について説 明するための図である。 発明を実施するための最良の形態 以下、 図を参照して、 本発明の実施の形態について説明する。
図 1 5は、 本発明を適応した、 MPEGビデオデコーダの回路構成を示すブロック 図である。
図 1 5の MPEGビデオデコーダは、 ス ト リーム入力回路 4 1、 スタートコ一ド検 出回路 4 2、 ス ト リームバッファ制御回路 4 3、 クロヅク発生回路 4 4、 ピクチ ャデコーダ 4 5、 スライスデコーダ制御回路 4 6、 スライスデコーダ 4 7乃至 4 9、 動き補償回路 5 0、 輝度バッファ制御回路 5 1、 色差バッファ制御回路 5 2、 および表示出力回路 5 3から構成される I C 3 1、 ス ト リームバヅファ 6 1およ びスタートコードバッファ 6 2で構成され、 例えば、 DRAMからなるバッファ 3 2、 輝度バッファ 7 1および色差バッファ 7 2で構成され、 例えば、 DRAMからなるビ デォバッファ 3 3、 コン トローラ 3 4、 並びに、 ドライブ 3 5で構成される。 ス ト リーム入力回路 4 1は、 高能率符号化された符号化ス ト リ一ムの入力を受 け、 ス夕一トコード検出回路 4 2に供給する。 スタートコード検出回路 4 2は、 入力された符号化ス ト リームをス ト リームバッファ制御回路 4 3に供給するとと もに、 図 1 3を用いて説明したスタートコードを検出して、 それを基に、 そのス タ一トコ一 ドの種類と、 ス ト リームバヅファ 6 1 にそのスター トコー ドが書き込 まれる位置を示す書き込みポインタとを含む、 スタートコード情報を生成し、 ス ト リームバッファ制御回路 4 3に供給する。
クロック発生回路 4 4は、 図 1 4を用いて説明したクロック発生回路 1 3の 2 倍の基本クロックを発生し、 ス ト リームバッファ制御回路 4 3に供給する。 ス ト リームバッファ制御回路 4 3は、 クロック発生回路 4 4から供給される基本クロ ヅクに従って、 入力された符号化ス ト リームを、 ノ ソファ 3 2のス ト リ一ムバヅ ファ 6 1に書き込み、 入力されたスタートコ一ド情報を、 バッファ 3 2のスタ一 トコ一ドノ ヅファ 6 2に書き込む。
MPEGビデオデコーダが、 4 : 2 : 2 P @HLの MPEG符号化ス ト リームを順方向に再 生することができるようになされている場合、 ス ト リ一ムバッファ 6 1は、 少な く とも、 4 : 2 : 2 P @HLのデコードに要求される V B Vバッファサイズである 4 7, 185 , 920ビヅ 卜の容量を有している。 また、 MPEGビデオデコーダが、 逆転再生を 実行することができるようになされている場合、 ス ト リームバッファ 6 1は、 少 なく とも、 2 G0P分のデータを記録することができる容量を有している。
ピクチャデコーダ 4 5は、 ス ト リームバッファ制御回路 4 3を介して、 スタ一 トコ一ドバヅファ 6 2からス夕一トコ一ド情報を読み出す。 例えば、 デコード開 始時は、 図 2を用いて説明した sequencejieaderからデコ一ドが開始されるので、 ビクチャデコーダ 4 5は、 図 4を用いて説明したス夕一トコ一ドである sequence — header_codeに対応する書き込みポィン夕をスタートコ一ドバヅファ 6 2から読 み出し、 その書き込みポイ ンタを基に、 ス ト リームバッファ 6 1 から sequence— h eaderを読み出してデコードする。 続いて、 ピクチャデコーダ 4 5は、 sequence— headerの読み出しと同様に、 sequence—extens ion、 GOP— header、 p i cture— coding _extens i on等をス ト リ一ムバッファ 6 1から読み出してデコ一ドする。
ピクチャデコーダ 4 5が、 スタートコードバッファ 6 2から、 最初の sl i ce_st art— codeを読み出した時点で、 そのビクチャのデコ一ドに必要な全てのパラメ一 夕が揃ったことになる。 ビクチャデコーダ 4 5は、 デコードしたビクチャ層のパ ラメ一夕を、 スライスデコーダ制御回路 4 6に出力する。
スライスデコーダ制御回路 4 6は、 ピクチャ層のパラメータの入力を受け、 ス ト リームバッファ制御回路 4 3を介して、 スタートコードバッファ 6 2から、 対 応するスライスのスタートコード情報を読み出す。 また、 スライスデコーダ制御 回路 4 6は、 スライスデコーダ 4 7乃至 4 9のいずれかにデコ一ドさせるスライ スが、 符号化ス ト リームに含まれる何番目のスライスであるかを示すレジス夕を 有し、 そのレジスタを参照しながら、 ピクチャ層のパラメータと、 スタートコ一 ド情報に含まれるスライスの書き込みボインタをスライスデコーダ 4 7乃至 4 9 のいずれかに供給する。 スライスデコーダ制御回路 4 6が、 スライスデコーダ 4 7乃至 4 9のうち、 デコ一ドを実行させるスライスデコーダを選択する処理につ いては、 図 1 6および図 1 7を用いて後述する。
スライスデコーダ 4 7は、 マクロブロック検出回路 8 1、 べク トル復号回路 8 2、 逆量子化回路 8 3、 および逆 D C T回路 8 4で構成され、 スライスデコーダ 制御回路 4 6から入力されたスライスの書き込みポインタを基に、 対応するスラ イスを、 ス ト リームバッファ制御回路 4 3を介してス ト リームバッファ 6 1から 読み出す。 そして、 スライスデコーダ制御回路 4 6から入力されたピクチャ層の パラメ一夕に従って、 読み出したスライスをデコードして、 動き補償回路 5 0に 出力する。
マクロブロヅク検出回路 8 1は、 スライス層のマクロブロックを分離し、 各マ ク口プロヅクのパラメ一夕をデコ一ドし、 可変長符号化された各マクロプロック の予測モ一ドおよび予測べク トルをべク トル復号回路 8 2に供給し、 可変長符号 化された係数データを逆量子化回路 8 3に供給する。 ベタ トル復号回路 8 2は、 可変長符号化された、 各マクロプロックの予測モードおよび予測べク トルをデコ ードして、 予測ベク トルを復元する。 逆量子化回路 8 3は、 可変長符号化された 係数デ一夕をデコ一ドして逆 D C T回路 8 4に供給する。 逆 D C T回路 8 4は、 デコ一ドされた係数データに逆 D C Tを施し、 符号化前の画素データに復元する。 スライスデコーダ 4 7は、 動き補償回路 5 0に、 デコードしたマクロブロック に対する動き補償の実行を要求し (すなわち、 図中、 R E Qで示される信号を 1 にする) 、 動き補償回路 5 0から動き補償の実行要求に対する受付を示す信号 (図中 A C Kで示される信号) を受けて、 デコードされた予測ベク トルおよびデ コードされた画素を動き補償回路 5 0に供給する。 スライスデコーダ 4 7は、 A C K信号の入力を受けて、 デコ一ドされた予測べク トルおよびデコ一ドされた画 素を動き補償回路 5 0に供給した後に、 R E Q信号を 1から 0に変更する。 そし て、 次に入力されたマクロプロヅクのデコードが終了した時点で、 R E Q信号を、 再び 0から 1に変更する。
また、 スライスデコーダ 4 8のマクロプロヅク検出回路 8 5乃至逆 D C T回路 8 8およびスライスデコーダ 4 9のマクロブロック検出回路 8 9乃至逆 D C T回 路 9 2においても、 スライスデコーダ 4 7のマクロブロック検出回路 8 1乃至逆 D C T回路 8 4と同様の処理が行われるので、 その説明は省略する。 動き補償回路 5 0は、 スライスデコーダ 4 7乃至 4 9から入力されたデ一夕の 動き補償が終了したか否かを示す Reg_REQ_A、 Reg— REQ_Bおよび Reg— REQ—Cの 3つの レジスタを有し、 これらのレジスタの値を参照しながら、 適宜、 スライスデコー ダ 4 7乃至 4 9のうちの 1つを選んで、 動き補償実行要求を受け付け (すなわち、 R E Q信号に対して、 A C K信号を出力して、 予測ベク トルと画素の入力を受け る) 、 動き補償処理を実行する。 このとき、 動き補償回路 5 0は、 スライスデコ —ダ 4 7乃至 4 9のうち、 所定の夕ィ ミングにおいて R E Q信号が 1であるスラ イスデコーダ 4 7乃至 4 9に対する動き補償が、 それそれ 1回ずつ終了した後に、 次の動き補償要求を受け付ける。 例えば、 スライスデコーダ 4 7が連続して動き 補償要求を出しても、 スライスデコーダ 4 8およびスライスデコーダ 4 9の動き 補償が終了するまで、 スライスデコーダ 4 7の 2つ目の動き補償要求は受け付け られない。 動き補償回路 5 0が、 スライスデコーダ 4 7乃至 4 9のいずれのデコ —ダの出力に対して動き補償を実行するかを選択する処理については、 図 1 8お よび図 1 9を用いて後述する。
スライスデコーダ 4 7乃至 4 9のいずれかから入力されるマクロブロックが動 き補償を使用していない場合、 動き補償回路 5 0は、 その画素データが輝度デー 夕であれば、 輝度バッファ制御回路 5 1 を介して、 ビデオバッファ 3 3の輝度バ ヅファ 7 1に書き込み、 その画素データが色差データであれば、 色差バッファ制 御回路 5 2を介して、 ビデオバヅファ 3 3の色差バヅファ 7 2に書き込み、 表示 出力に備えるとともに、 この画素データが、 他の画像の参照データとされる場合 に備える。
また、 スライスデコーダ 4 7乃至 4 9のいずれかから出力されるマクロブロヅ クが動き補償を使用している場合、 動き補償回路 5 0は、 スライスデコーダ 4 7 乃至 4 9のうち対応するデコーダから入力される予測べク トルに従って、 その画 素データが輝度データであれば、 輝度バッファ制御回路 5 1 を介して、 輝度バッ ファ 7 1から参照画素を読み込み、 その画素デ一夕が色差データであれば、 色差 バッファ制御回路 5 2を介して、 色差バッファ 7 2から参照画素データを読み込 む。 そして、 動き補償回路 5 0は、 読み込んだ参照画素データを、 スライスデコ —ダ 4 7乃至 4 9のいずれかから供給された画素デ一夕に加算し、 動き補償を行 •5。
動き補償回路 5 0は、 動き補償を行った画素デ一タを、 その画素データが輝度 データであれば、 輝度バッファ制御回路 5 1 を介して、 輝度バッファ Ί 1に書き 込み、 その画素データが色差データであれば、 色差バッファ制御回路 5 2を介し て、 色差バッファ 7 2に書き込み、 表示出力に備えるとともに、 この画素データ が、 他の画素の参照デ一夕とされる場合に備える。
表示出力回路 5 3は、 デコードした画像データを出力するための同期タイ ミン グ信号を発生し、 このタイ ミングに従って、 輝度バッファ制御回路 5 1 を介して、 輝度バッファ 7 1から輝度データを読み出し、 色差バッファ制御回路 5 2を介し て、 色差バッファ 7 2から色差デ一夕を読み出して、 復号ビデオ信号として出力 する。
ドライブ 3 5は、 コン トローラ 3 4に接続されており、 必要に応じて装着され る磁気ディスク 1 0 1、 光ディスク 1 0 2、 光磁気ディスク 1 0 3、 および半導 体メモリ 1 0 4などとデータの授受を行う。 また、 コン 卜ローラ 3 4は、 以上説 明した I C 3 1、 およびドライブ 3 5の動作を制御するものである。 コント口一 ラ 3 4は、 例えば、 ドライブに装着されている磁気ディスク 1 0 1、 光ディスク 1 0 2、 光磁気デイスク 1 0 3、 および半導体メモリ 1 0 4などに記録されてい るプログラムに従って、 I C 3 1 に処理を実行させることができる。
次に、 図 1 6のフローチヤ一トを参照して、 スライスデコーダ制御回路 4 6の 処理について説明する。
ステップ S 1 において、 スライスデコーダ制御回路 4 6は、 処理するスライス が、 符号化ス ト リームの何番目のスライスであるかを表わすレジスタの値を N = 1 とする。 ステップ S 2において、 スライスデコーダ制御回路 4 6は、 スライス デコーダ 4 7が処理中であるか否かを判断する。
ステヅプ S 2において、 スライスデコーダ 4 7が処理中ではないと判断された 場合、 ステップ S 3において、 スライスデコーダ制御回路 4 6は、 ピクチャ層の パラメ一夕と、 スタートコード情報に含まれるスライス Nの書き込みポインタを スライスデコーダ 4 7に供給し、 スライスデコーダ 4 7にスライス Nをデコード させ、 処理はステップ S 8に進む。 ステヅブ S 2において、 スライスデコーダ 4 7が処理中であると判断された場 合、 ステップ S 4において、 スライスデコーダ制御回路 4 6は、 スライスデコー ダ 4 8が処理中であるか否かを判断する。 ステヅブ S 4において、 スライスデコ —ダ 4 8が処理中ではないと判断された場合、 ステヅプ S 5において、 スライス デコーダ制御回路 4 6は、 ピクチャ層のパラメ一夕と、 スタートコード情報に含 まれるスライス Nの書き込みポィンタをスライスデコーダ 4 8に供給し、 スライ スデコーダ 4 8にスライス Nをデコードさせ、 処理はステツプ S 8に進む。
ステヅブ S 4において、 スライスデコーダ 4 8が処理中であると判断された場 合、 ステップ S 6において、 スライスデコーダ制御回路 4 6は、 スライスデコー ダ 4 9が処理中であるか否かを判断する。 ステップ S 6において、 スライスデコ ーダ 4 9が処理中であると判断された場合、 処理は、 ステップ S 2に戻り、 それ 以降の処理が繰り返される。
ステップ S 6において、 スライスデコーダ 4 9が処理中ではないと判断された 場合、 ステップ S 7において、 スライスデコーダ制御回路 4 6は、 ピクチャ層の パラメ一夕と、 ス夕一トコ一ド情報に含まれるスライス Nの書き込みポィン夕を スライスデコーダ 4 9 に供給し、 スライスデコーダ 4 9にスライス Nをデコード させ、 処理はステップ S 8に進む。
ステップ S 8において、 スライスデコーダ制御回路 4 6は、 処理するスライス が符号化ス トリ一ムの何番目のスライスであるかを示すレジス夕の値を N = N + 1 とする。 ステップ S 9において、 スライスデコーダ制御回路 4 6は、 全スライ スのデコードが終了したか否かを判断する。 ステップ S 9において、 全スライス のデコードが終了されていないと判断された場合、 処理は、 ステップ S 2に戻り、 それ以降の処理が繰り返される。 ステップ S 9において、 全スライスのデコード が終了されたと判断された場合、 処理が終了される。
図 1 7は、 図 1 6を用いて説明したスライスデコーダ制御回路 4 6の処理の具 体例を示す図である。 上述したように、 ビクチャデコーダ 4 5でピクチャ層のデ 一夕がデコードされ、 そのパラメ一夕がスライスデコーダ制御回路 4 6に供給さ れる。 ここで、 図 1 6を用いて説明したステップ S 1 において、 スライスデコ一 ダ制御回路 4 6は、 レジスタの値を N = 1 とする。 ステップ S 2において、 スラ イスデコーダ 4 7は処理中ではないと判断されるので、 ステップ S 3において、 スライスデコーダ制御回路 4 6は、 ピクチャ層のパラメータと、 スタートコード 情報に含まれるスライス 1の書き込みポィ ンタをスライスデコーダ 4 7に供給し、 スライスデコーダ 4 7にスライス N ( N = 1 ) をデコードさせ、 ステップ S 8に おいて、 レジス夕の値を N = N + 1 とする。 そして、 ステップ S 9において、 全 スライスのデコ一ドが終了していないと判断されるため、 処理はステップ S 2に 戻る。
ステップ S 2において、 スライスデコーダ 4 7は処理中であると判断される。 そして、 ステップ S 4において、 スライスデコーダ 4 8は処理中でないと判断さ れるので、 ステップ S 5において、 スライスデコーダ制御回路 4 6は、 ビクチャ 層のパラメータと、 スライス 2の書き込みポインタを、 スライスデコーダ 4 8に 供給し、 スライスデコーダ 4 8にスライス N ( N = 2 ) をデコードさせ、 ステツ プ S 8において、 N = N + 1 とする。 そして、 ステップ S 9において、 全スライ スのデコ一ドが終了していないと判断されるため、 処理はステップ S 2に戻る。 ステップ S 2において、 スライスデコーダ 4 7は処理中であると判断され、 ス テツプ S 4において、 スライスデコーダ 4 8は処理中であると判断される。 そし て、 ステップ S 6において、 スライスデコーダ 4 9は処理中ではないと判断され るので、 ステヅプ S 7において、 スライスデコーダ処理回路は、 ビクチャ層のパ ラメ一タと、 スライス 3の書き込みポインタを、 スライスデコーダ 4 9に供給し、 スライスデコーダ 4 9にスライス N ( N = 3 ) をデコードさせ、 ステップ S 8に おいて、 N - N + 1 とする。 そして、 ステップ S 9において、 全スライスのデコ 一ドが終了していないと判断されるため、 処理はステップ S 2に戻る。
スライスデコーダ 4 7乃至 4 9は、 入力されたスライスのデコード処理を実施 した後、 デコード処理の完了を示す信号をスライスデコーダ制御回路 4 6に出力 する。 すなわち、 スライスデコーダ 4 7乃至 4 9のいずれかからスライス 2のデ コードの完了を示す信号が入力されるまで、 スライスデコーダ 4 7乃至 4 9は全 て処理中であるので、 ステップ S 2、 ステップ S 4、 およびステップ S 6の処理 が繰り返される。 そして、 図 1 7の図中 Aで示されるタイ ミングで、 スライスデ コーダ 4 8がデコード処理の完了を示す信号を、 スライスデコーダ 4 6に出力し た場合、 ステップ S 4において、 スライスデコーダ 4 8が処理中ではないと判断 されるので、 ステップ S 5において、 スライスデコーダ制御回路 4 6は、 スライ ス 4の書き込みポイ ンタを、 スライスデコーダ 4 8に供給し、 スライスデコーダ 4 8に、 スライス N ( N = 4 ) をデコードさせ、 ステップ S 8において、 N = N + 1 とする。 そして、 ステップ S 9において、 全スライスのデコードが終了して いないと判断されるため、 処理はステツプ S 2に戻る。
そして、 次にスライスデコーダ 4 7乃至 4 9のいずれかからデコード処理の完 了を示す信号の入力を受けるまで、 スライスデコーダ制御回路 4 6は、 ステップ S 2、 ステップ S 4、 およびステップ S 6の処理を繰り返す。 図 1 7においては、 スライスデコーダ制御回路 4 6は、 図中 Bで示されるタイ ミングで、 スライスデ コーダ 4 9からスライス 3のデコ一ドの終了を示す信号の入力を受けるので、 ス テツプ S 6において、 スライスデコーダ 4 9は処理中ではないと判断される。 ス テヅブ S 7において、 スライスデコーダ制御回路 4 6は、 スライス 5の書き込み ポインタをスライスデコーダ 4 9に供給し、 スライスデコーダ 4 9に、 スライス N ( N = 5 ) をデコードさせ、 ステップ S 8において、 N = N + 1 とする。 そし て、 ステップ S 9において、 全スライスのデコードが終了していないと判断され るため、 処理はステップ S 2に戻る。 以下、 最後のスライスのデコードが終了さ れるまで、 同様の処理が繰り返される。
このように、 スライスデコーダ制御回路 4 6は、 スライスデコーダ 4 7乃至 4 9の処理状況を参照しながら、 スライスのデコード処理を割り当てるので、 複数 のデコーダを効率よく使用することができる。
次に、 図 1 8のフローチヤ一トを参照して、 動き補償回路 5 0による、 スライ スデコーダの調停処理について説明する。
ステップ S 2 1において、 動き補償回路 5 0は、 内部のレジス夕 Reg_REQ— A、 R eg一 REQ— Bおよび Reg_REQ_Cを初期化する。 すなわち、 Reg_REQ—A= 0、 Reg_REQ_B = 0、 Reg_REQ_C = 0 とする。
ステップ S 2 2において、 動き補償回路 5 0は、 レジスタの値が全て 0である か否かを判断する。 ステヅプ S 2 2において、 レジスタの値が全て 0ではない (すなわち、 1つでも 1がある) と判断された場合、 処理は、 ステップ S 2 4に 進む。
ステップ S 2 2において、 レジスタの値が全て 0であると判断された場合、 ス テツプ S 2 3において、 動き補償回路 5 0は、 スライスデコーダ 4 7乃至 4 9か ら入力される R E Q信号を基に、 レジスタの値を更新する。 すなわち、 スライス デコーダ 4 7から R E Q信号が出力されている場合、 Reg_REQ— A = 1 とし、 スライ スデコーダ 4 8から R E Q信号が出力されている場合、 Reg_REQ_B = 1 とし、 スラ イスデコーダ 4 9から R E Q信号が出力されている場合、 Reg_REQ— C = 1 とする。 そして処理は、 ステップ S 2 4に進む。
ステップ S 2 4において、 動き補償回路 5 0は、 Reg_REQ—A= 1であるか否かを 判断する。 ステップ S 2 4において、 Reg_REQ— A = 1であると判断された場合、 ス テヅプ S 2 5において、 動き補償回路 5 0は、 スライスデコーダ 4 7に A C K信 号を送信し、 Reg— REQ_A= 0とする。 スライスデコーダ 4 7は、 動き補償回路 5 0 に、 ベク トル復号回路 8 2で復号された予測ベク トルと、 逆0〇丁回路8 4で逆 D C Tされた画素を出力する。 そして処理は、 ステップ S 3 0に進む。
ステップ S 2 4において、 Reg_REQ— A= 1ではないと判断された場合、 ステップ S 2 6において、 動き補償回路 5 0は、 Reg_REQ_B == 1であるか否かを判断する。 ステップ S 2 6において、 Reg— REQ_B = 1であると判断された場合、 ステップ S 2 7において、 動き補償回路 5 0は、 スライスデコーダ 4 8に A C K信号を送信し、 Reg— REQ— B = 0 とする。 スライスデコーダ 4 8は、 動き補償回路 5 0に、 ベク トル 復号回路 8 6で復号された予測べク トルと、 逆 D C T回路 8 8で逆 D C Tされた 画素を出力する。 そして処理は、 ステップ S 3 0に進む。
ステップ S 2 6において、 Reg_REQ— B = 1ではないと判断された場合、 ステップ S 2 8において、 動き補償回路 5 0は、 Reg_REQ_C = 1であるか否かを判断する。 ステップ S 2 8において、 Reg_REQ_C = 1ではないと判断された場合、 処理は、 ス テヅプ S 2 2に戻り、 それ以降の処理が繰り返される。
ステップ S 2 8において、 Reg_REQ_C = 1であると判断された場合、 ステヅプ S 2 9において、 動き補償回路 5 0は、 スライスデコーダ 4 9に A C K信号を送信 し、 Reg_REQ_C = 0 とする。 スライスデコーダ 4 9は、 動き補償回路 5 0に、 ベタ トル復号回路 9 0で復号された予測べク トルと、 逆 D C T回路 9 2で逆 D C Tさ れた画素を出力する。 そして処理は、 ステップ S 3 0に進む。
ステップ S 3 0において、 動き補償回路 5 0は、 スライスデコーダ 4 7乃至 4 9のいずれかから入力されたマクロプロックは、 動き補償を使用しているか否か を判断する。
ステップ S 3 0において、 マクロプロックが動き補償を使用していると判断さ れた場合、 ステップ S 3 1において、 動き補償回路 5 0は、 入力されたマクロブ ロックに動き補償処理を行う。 すなわち、 動き補償回路 5 0は、 スライスデコー ダ 4 7乃至 4 9のうち対応するデコーダから出力される予測べク トルに従って、 その画素データが輝度デ一夕であれば、 輝度バッファ制御回路 5 1 を介して、 輝 度バッファ 7 1から参照画素を読み出し、 その画素データが色差データであれば、 色差バッファ制御回路 5 2を介して、 色差バッファ 7 2から参照画素デ一夕を読 み出す。 そして、 動き補償回路 5 0は、 読み出した参照画素データを、 スライス デコ一ダ 4 7乃至 4 9のいずれかから供給された画素データに加算し、 動き補償 を行う。
動き補償回路 5 0は、 動き補償を行った画素デ一夕を、 その画素データが輝度 データであれば、 輝度バッファ制御回路 5 1 を介して、 輝度バッファ 7 1に書き 込み、 その画素データが色差デ一夕であれば、 色差バッファ制御回路 5 2を介し て、 色差バッファ 7 2に書き込み、 表示出力に備えるとともに、 この画素データ が、 他の画素の参照デ一夕とされる場合に備える。 そして、 処理は、 ステップ S 2 2に戻り、 それ以降の処理が繰り返される。
ステップ S 3 0において、 マクロプロヅクが動き補償を使用していないと判断 された場合、 ステップ S 3 2において、 動き補償回路 5 0は、 その画素デ一夕が 輝度デ一夕であれば、 輝度バッファ制御回路 5 1 を介して輝度バッファ 7 1に書 き込み、 その画素データが色差データであれば、 色差バッファ制御回路 5 2を介 して色差バッファ 7 2に書き込み、 表示出力に備えるとともに、 この画素データ が、 他の画像の参照デ一夕とされる場合に備える。 そして、 処理は、 ステップ S 2 2に戻り、 それ以降の処理が繰り返される。
図 1 9は、 図 1 8を用いて説明した動き補償回路 5 0によるデコーダの調停処 理の具体例を示す図である。 図 1 9に示すタイ ミング Cにおいて、 図 1 8のステップ S 2 2の処理により、 動き補償回路 5 0のレジスタが全て 0であると判断された場合、 スライスデコ一 ダ 4 7乃至 4 9は、 全て、 R E Q信号を出力しているため、 ステップ S 2 3の処 理により、 それぞれのレジスタの値は、 Reg_REQ— A = 1、 Reg_REQ_B = 1 , Reg_RE Q— C = l に更新される。 そして、 ステップ S 2 4の処理により、 Reg— REQ_A= 1で あると判断されるため、 ステップ S 2 5において、 動き補償回路 5 0は、 スライ スデコーダ 4 7に A C K信号を出力して、 Reg_REQ—A= 0 とし、 スライスデコーダ
4 7から予測べク トルと画素の入力を受け、 動き補償 1 を行う。
動き補償 1が終了した後、 すなわち、 図 1 9の Dで示されるタイ ミングにおい て、 処理は、 再びステップ S 2 2に戻る。 図中 Dで示されるタイ ミ ングにおいて は、 スライスデコーダ 4 7から、 R E Q信号が出力されている。 しかし、 レジス 夕の値は、 Reg_REQ_A= 0、 Reg_REQ_B = 1、 Reg_REQ_C = 1であり、 ステップ S 2 2において、 レジスタの値は、 全て 0ではないと判断されるため、 処理は、 ステ ヅプ S 2 4に進み、 レジス夕の値は更新されない。
ステップ S 2 4において、 Reg REQ_A= 0であると判断され、 ステップ S 2 6に おいて、 Reg_REQ_B = 1であると判断されるので、 動き補償回路 5 0は、 ステップ
5 2 7において、 スライスデコーダ 4 8に A C K信号を出力して、 Reg_REQ— B = 0 とし、 スライスデコーダ 4 8から予測ベク トルと画素の入力を受け、 動き補償 2 を行う。
動き補償 2が終了した後、 すなわち、 図 1 9の Eで示されるタイ ミングにおい て、 処理は、 再びステップ S 2 2に戻る。 図中 Eで示されるタイ ミングにおいて も、 スライスデコーダ 4 7から、 R E Q信号が出力されている。 しかし、 レジス 夕の値は、 Reg— REQ_A= 0、 Reg— REQ_B = 0、 Reg— REQ—C = 1であるので、 ステップ S 2 2において、 レジスタの値は全て 0ではないと判断されるので、 図中 Dで示 される夕イ ミングのときと同様、 レジス夕の値は更新されない。
そして、 ステップ S 2 4において、 Reg_REQ—A = 0であると判断され、 ステップ S 2 6において、 Reg_REQ_B =◦であると判断され、 ステップ S 2 8において、 R eg— REQ_C = 1であると判断されるので、 動き補償回路 5 0は、 ステップ S 2 9に おいて、 スライスデコーダ 4 9に A C K信号を出力して、 Res REQ C = 0 とし、 ス ライスデコーダ 4 9から予測べク トルと画素の入力を受け、 動き補償 3を行う。 動き補償 3が終了した後、 すなわち、 図 1 9の Fで示されるタイ ミングにおい て、 処理は、 再びステツプ S 2 2に戻る。 Fで示される夕ィ ミングにおいては、 レジスタの値は、 Reg— REQ— A= 0、 Reg— REQ— B = 0、 Reg— REQ_C = 0であるので、 ス テツプ S 2 3において、 レジス夕の値が更新され、 Reg— REQ_A = 1、 Reg_REQ_B = 1、 Reg_REQ_C = 0 となる。
そして、 ステップ S 2 4において、 Reg— REQ_A= 1であると判断され、 同様の処 理により、 動き補償 4が実行される。
このような処理を繰り返すことにより、 動き補償回路 5 0は、 スライスデコー ダ 4 7乃至 4 9を調停しながら、 動き補償を行う。
以上説明したように、 図 1 5の MPEGビデオデコーダにおいては、 ス夕一トコ一 ドバッファ 6 2を設けたことにより、 ピクチャデコーダ 4 5乃至スライスデコ一 ダ 4 9を、 お互いの動作の終了を待つことなしに、 ス ト リームバッファ 6 1にァ クセスさせることができる。 また、 スライスデコーダ 4 7乃至 4 9は、 スライス デコーダ制御回路 4 6の処理により、 同時に動作させることができる。 更に、 動 き補償回路 3 0は、 適宜、 1つのスライスデコーダを選択し、 それそれ分離され た輝度バッファ 7 1および色差バッファ 7 2にアクセスし、 動き補償を行うこと ができる。 したがって、 図 1 5の MPEGビデオデコーダにおいては、 デコード処理 性能およびバッファへのアクセス性能が向上され、 2 : 4 : 4 P @HLに対するデコ 一ド処理が可能となる。
次に、 図 1 5の MPEGビデオデコーダに入力された MPEGス ト リームが復号されて 再生される場合の、 フレームのバッファリングについて説明する。
図 2 0は、 図 1 5の MPEGビデオデコーダを備えた再生装置の構成を示すブロッ ク図である。 なお、 図 1 5における場合と対応する部分には同一の符号を付して あり、 その説明は適宜省略する。
ハードディスク 1 1 2には、 MPEG符号化ス ト リームが記録されている。 サ一ボ 回路 1 1 1は、 コン トローラ 3 4の制御に基づいて、 ハードディスク 1 1 2を駆 動し、 図示しないデータ読み取り部により読み出された MPEGス ト リームが I C 3 1の再生回路 1 2 1に入力される。 再生回路 1 2 1は、 図 1 5を用いて説明したス ト リーム入力回路 4 1乃至クロ ック発生回路 4 4を含む回路であり、 順方向の再生時には、 入力された順番に MP EGス ト リ一ムを再生ス ト リームとして MPEGビデオデコーダ 1 2 2に出力する。 そ して、 逆方向の再生 (逆転再生) 時には、 ス ト リームバヅファ 6 1 を用いて、 入 力された MPEG符号化ス ト リームを、 逆転再生に適した順番に並べ替えた後、 再生 ス ト リームとして MPEGビデオデコーダ 1 2 2に出力する。
MPEGビデオデコーダ 1 2 2は、 図 1 5を用いて説明したピクチャデコーダ 4 5 乃至表示出力回路 5 3を含む回路であり、 動き補償回路 5 0の処理により、 必要 に応じて、 ビデオバッファ 3 3に蓄積された復号されたフレームを参照画像とし て読み出し、 動き補償を実行して、 入力された再生ス ト リームの各ピクチャ (フ レーム) を、 上述した方法で復号し、 ビデオバッファ 3 3に蓄積するとともに、 表示出力回路 5 3の処理により、 ビデオバッファ 3 3に蓄積されたフレームを順 次読み出して、 図示しない表示部もしくは表示装置に出力し、 表示させる。
ここでは、 ハードディスク 1 1 2に蓄積された MPEG符号化ス ト リームを復号し て出力し、 表示させる場合を例にあげて説明したが、 図 1 5の MPEGビデオデコー ダを備えた再生装置、 もしくは録画再生装置は、 図 2 0で示す構成と異なる構成 (例えば、 ス ト リームバッファ 6 1 と同様に、 符号化ス ト リームを保持する機能、 および再生回路 1 2 1 と同様に、 フレームを並べ替える機能を MPEGビデオデコ一 ダ 1 2 2に備えさせているような構成) であっても、 基本的に同様の処理により、 入力された MPEG符号化ス ト リームが復号されて、 出力される。
また、 符号化ス ト リ一ムを蓄積する蓄積媒体は、 ハードディスク 1 1 2以外に も、 光ディスク、 磁気ディスク、 光磁気ディスク、 半導体メモリ、 磁気テープな ど、 様々な記録媒体を用いることが可能であることは言うまでもない。
図 2 1および図 2 2を用いて、 MPEG予測符号化画像のビクチャ構成について説 明する。
図 2 1は、 図示しないエンコーダ (符号化装置) に入力されて符号化される MP EGビデオ信号のビクチャ構成を示す図である。
フレーム 1 2は、 イン トラ符号化フレーム ( I ピクチャ) であり、 他の画像を 参照することなく、 符号化 (エンコード) が行われる。 このようなフレ一ムは、 復号の開始点である符号化シーケンスのアクセスポィン トを提供するが、 その圧 縮率は、 余り高くない。
フレーム P 5、 フレーム P 8、 フ レーム P b、 およびフレーム P eは、 前方向 予測符号化フレーム (Pピクチャ) であり、 過去の I ピクチャまたは Pビクチャ からの動き補償予測により、 I ピクチャより効率的な符号化が行われる。 Pピク チヤ自身も、 予測の参照として使用される。 フレーム B 3 , フレーム Β 4 · · · フレーム B dは、 双方向予測符号化フレームであり、 I ピクチャ、 Pビクチャと 比較して、 より効率的に圧縮が行われるが、 動き補償のためには、 過去および将 来の双方の参照画像を必要とする。 Bピクチャが、 予測の参照として使用される ことはない。
図 2 2に、 図 2 1 を用いて説明した MPEG符号化画像を生成するために、 図示し ないエンコーダで実行される、 フレーム間予測を用いた MPEGビデオ信号の符号化 の例 (MPEG符号化ス ト リームの例) を示す。
入力されたビデオ信号は、 例えば 1 5 フレーム毎に GOP ( Group of P i ctures) に分割され、 各 GOPのはじめから 3番目が I ビクチャとされ、 以下、 3フレーム毎 に出現するフレームが Pビクチャとされ、 それ以外のフレームが Bピクチャとさ れる (M = 1 5 , N = 3 ) 。 そして、 符号化に後方予測を必要とする Bピクチャ であるフレーム B 1 0およびフレーム B 1 1がバッファに一時保存され、 I ピク チヤであるフレーム I 1 2が最初に符号化される。
フレーム I 1 2の符号化の終了後、 ノ ヅファに一時保存されたフレーム B 1 0 およびフレーム B 1 1が、 フレーム I 1 2を参照画像として符号化される。 Bピ クチャは、 本来、 過去と将来の両方の参照画像を参照して符号化されるべきであ るが、 フレーム B 1 0およびフレーム B 1 1のように、 前方向に参照可能な画像 がない場合、 C losed GOPフラグを立てて、 前方向予測をせずに後方向の予測のみ で符号化が行われる。
フレーム B 1 0およびフレーム B l 1の符号化が行われている間に入力された フレーム B 1 3およびフレーム B 1 4は、 ビデオバッファに蓄えられ、 次に入力 されたフレーム P 1 5が、 フレーム I 1 2を前方向予測画像として参照して、 符 号化される。 そして、 ビデオバッファから読み出されたフレーム B 1 3およびフ レーム B 1 4は、 フレーム I 1 2を前方向予測画像として参照し、 フレーム P 1 5を後方向予測画像として参照して符号化される。
続いて、 フレーム B 1 6およびフレーム B 1 7がビデオバヅファに蓄えられ、 以下、 順次同様にして、 Pビクチャは、 前回符号化された I ピクチャ、 もしくは Pピクチャを前方向予測画像として参照して符号化され、 Bピクチャは、 一旦ビ デォバッファに蓄えられた後、 以前に符号化された I ビクチャ、 もしくは Pビク チヤを、 前方向予測画像もしくは後方向予測画像として参照して符号化される。 このようにして、 複数の G0Pに渡って、 画像デ一夕が符号化され、 符号化ス ト リ —ムが生成される。 図 2 0のハ一ドディスク 1 1 2には、 上述した方法で符号化 された MPEG符号化ス ト リームが記録される。
符号化時に、 D C T変換により得られた D C T係数行列は、 通常の画像を D C T変換した場合、 低周波成分において大きく、 高周波成分では小さいという特徴 がある。 この特徴を利用し情報の圧縮を図るのが量子化 (各 D C T係数に対して ある量子化単位で割り、 小数点以下を丸める) である。 量子化単位は 8 x 8の量 子化テーブルとして設定され、 低周波成分に対しては小さい値、 高周波成分に対 しては大きい値が設定される。 量子化の結果、 行列の左上以外の成分はほとんど 0になる。 そして、 量子化マト リクスに対応する量子化 I Dが、 圧縮デ一夕に付 加されて復号側に渡される。 すなわち、 図 2 0の MPEGビデオデコーダ 1 2 2は、 量子化 I Dから量子化マ ト リクスを参照して、 MPEG符号化ス ト リームを復号する。 次に、 図 2 3を用いて、 ハードディスク 1 1 2から、 順方向にビデオデ一夕を 再生する場合に、 GOP 1乃至 G0P 3の符号化ス ト リームが再生回路 1 2 1 に入力さ れ、 MPEGビデオデコーダ 1 2 2の処理により復号される処理について説明する。 この図 2 3は、 フレーム間予測を使用した MPEG復号例を示している。
順方向再生のためにハードディスク 1 1 2から再生回路 1 2 1 に入力される MP EGビデオス ト リームは、 再生回路 1 2 1の処理により、 入力された順番と同一の ビクチャ配列の再生ス ト リ一ムとして、 MPEGビデオデコーダ 1 2 2に出力される。 MPEGビデオデコーダ 1 2 2において、 再生ス ト リームは、 図 1 5乃至図 1 9を用 いて説明した手順に従って復号され、 ビデオバッファ 3 3に蓄積される。
最初に入力されたフレーム I 1 2は、 I ビクチャであるので、 復号に参照画像 を必要としない。 MPEGビデオデコーダ 1 2 2において復号されたフレーム I 1 2 が蓄積されるビデオバッファ 3 3内のバヅファ領域をバッファ 1 とする。
次に MPEGビデオデコーダ 1 2 2に入力されるフレーム B 1 0およびフレーム B 1 1は、 Bピクチャであるが、 C losed G0Pフラグが立っているので、 ビデオバヅ ファ 3 3のバヅファ 1 に蓄積されているフレーム I 1 2を後方向参照画像として 参照して復号され、 ビデオバッファ 3 3に蓄積される。 復号されたフレーム B 1 0が蓄積されるバッファ領域をバッファ 3 とする。
そして、 表示出力回路 5 3の処理により、 ビデオバッファ 3 3のバッファ 3か らフレーム B 1 0が読み出されて、 図示しない表示部に出力されて表示される。 そして、 次に復号されたフレーム B 1 1が、 ビデオバッファ 3 3のバッファ 3に 蓄積 (すなわち、 バッファ 3に上書き) されたのち、 読み出されて、 図示しない 表示部に出力されて、 表示される。
その次に、 バヅファ 1からフレーム I 1 2が読み出されて、 図示しない表示部 に出力されて、 表示され、 そのタイ ミングで、 次のフレーム P 1 5が、 ビデオバ ヅファ 3 3のバッファ 1 に蓄積されているフレーム I 1 2を参照画像として復号 され、 ビデオバッファ 3 3のバッファ 2に蓄積される。
フレーム B 1 0およびフレーム B 1 1に C losed GOPフラグが立っていない場合、 前方向に参照できる画像がないため、 フレーム B 1 0およびフレーム B 1 1は、 復号されない。 そのような場合、 フレーム I 1 2が一番初めに表示出力回路 5 3 から出力され、 表示される。
次に入力されるフレーム B 1 3は、 ビデオバヅファ 3 3のバッファ 1 に蓄積さ れているフレーム I 1 2を前方向参照画像とし、 バッファ 2に蓄積されているフ レーム P 1 5を後方向参照画像として参照して復号され、 バッファ 3に蓄積され る。 そして、 表示出力回路 5 3の処理により、 ビデオバヅファ 3 3のバヅファ 3 からフレーム B 1 3が読み出されて、 出力表示処理が実行されている間に、 次に 入力されるフレーム B 1 4が、 ビデオバッファ 3 3のバッファ 1 に蓄積されてい るフレーム I 1 2を前方向参照画像とし、 バッファ 2に蓄積されているフレーム P 1 5を後方向参照画像として参照して復号され、 バッファ 3に蓄積される。 そ して、 表示出力回路 5 3の処理により、 ビデオバッファ 3 3のバヅファ 3からフ レーム B 1 4が読み出されて、 出力され、 表示される。
次に入力されるフ レーム P 1 8は、 バッファ 2に蓄積されているフレーム P 1 5を前方向参照画像として復号される。 フレーム B 1 4の復号が終われば、 バッ ファ 1に蓄積されているフレーム I 1 2は、 その後、 参照されることがないので, 復号されたフレーム P 1 8は、 ビデオバッファ 33のバッファ 1に蓄積される。 そして、 バッファ 1にフレーム P 1 8が蓄積されるタイ ミングで、 バッファ 2か らフレーム P 1 5が読み出されて、 出力され、 表示される。
以下、 同様にして、 GOP 1のフレームが、 順次復号され、 バヅファ 1乃至 3 に蓄積され、 順次、 読み出されて表示される。
G 0 P 2の先頭のフレーム I 2 2が入力されたとき、 Iピクチャであるフレー ム 1 2 2は、 復号時に参照画像を必要としないので、 そのまま復号され、 バヅフ ァ 2に蓄積される。 そのタイ ミングで、 GOP 1のフ レーム P i eが読み出され て、 出力され、 表示される。
続いて入力される G〇P 2のフレーム B 20およびフレーム B 2 1は、 バッフ ァ 1のフレーム P i eを前方向参照画像、 ノ ッファ 2のフレーム I 2 2を後方向 参照画像として復号され、 バッファ 3に順次蓄積され、 読み出されて、 表示され る。 このように、 G0Pの先頭にある Bピクチャは、 前の G0Pの Pピクチヤを前方向 参照画像として復号される。
以下、 同様にして、 GOP 2のフレームが、 順次復号され、 バッファ 1乃至 3 に蓄積され、 順次、 読み出されて表示される。 そして、 同様にして、 GOP 3以 下のそれぞれのフレームが順次復号され、 バッファ 1乃至 3に蓄積され、 順次、 読み出されて表示される。
以上の処理において、 MPEGビデオデコーダ 1 2 2は、 量子化 I Dを参照して復 号処理を実行する。
次に、 図 20を用いて説明した再生装置において、 逆転再生を実施する場合に ついて説明する。
従来の逆転再生においては、 Iピクチャのみを取り出して復号を実行していた ので、 1 5フレーム中の 1 フレームしか表示されない、 不自然な再生画像しか得 ることができなかった。 それに対して、 図 2 0の再生回路 1 2 1 には、 スタートコ一ドバッファ 6 2に 記録されたスタートコ一ドに基づいて、 ス ト リームバッファ 6 1 に入力された GO Pのフレームの順番を変更して再生ス ト リームを生成させることができ、 MPEGビデ ォデコーダ 1 2 2には、 1 5フレーム全てを復号させることができる。
しかしながら、 再生回路 1 2 1は、 逆転再生を行うために、 スタートコ一ドバ ッファ 6 2に記録されたスタートコ一ドに基づいて、 ス ト リームバッファ 6 1 に 入力された G0Pのフレームの順番を単純に逆転させて再生ス ト リームを生成すれば いいのではない。
例えば、 図 2 2を用いて説明した MPEG符号化ス ト リームの G0P 2および GOP 1 を 逆転再生させる場合、 最初に出力されて表示されるフレームは、 フレーム P 2 e でなければならないが、 フレーム P 2 eを復号するためには、 前方向参照画像と して、 フレーム P 2 bを参照する必要があり、 更にフレーム P 2 bを復号するた めには、 前方向参照画像としてフレーム P 2 8が必要である。 フレーム P 2 8を 復号するためにも前方向参照画像が必要であるので、 結局、 フレーム P 2 eを復 号し、 出力して表示させるためには、 G0P 2の I ビクチャおよび Pビクチャが全て 復号されていなければならない。
逆転再生時に最初に表示されるフレーム P 2 eを復号するために、 G0P 2を全て 復号させてビデオバヅファ 3 3に蓄積させ、 後のフレームから順に読み出す方法 も考えられるが、 その場合、 ビデオバヅファ 3 3には、 1 GOP ( 1 5フレーム) 分 のバッファ領域が必要となる。
また、 この方法では、 フレーム P 2 eから、 フレーム I 2 2までは復号して再 生することが可能であるが、 G0P 2のはじめの 2 フレーム、 すなわち、 逆転再生時 に最後に表示されるべきフレームであるフレーム B 2 1およびフレーム B 2 0を 復号するためには、 前方向参照画像として GOP 1のフレーム P 1 eが必要である。 GOP 1のフレーム P 1 eを復号するためには、 GOP 1の全ての I ピクチャおよび P ビクチャが必要である。
すなわち、 この方法では、 ビデオバッファ 3 3に 1 5フレーム分のバヅファ領 域を必要としながら、 1 G0P分の全てのフレームの逆転再生ができない。
図 2 2を用いて説明したように、 M == 1 5、 N = 3で符号化を行った場合、 1 GOP内には、 合計 5フレームの I ビクチャもしくは Pピクチヤが含まれる。
そこで、 ス ト リームバッファ 6 1 に、 少なく とも 2 G0P分のフレームを蓄積する ことが可能なようにし、 再生回路 1 2 1 において生成される再生ス ト リ一ムのフ レームの順番を、 MPEGビデオデコーダ 1 2 2の逆転再生のためのデコードの順番 に基づいて決定し、 ビデオバッファ 3 3に、 少なく とも、 「 1 G0Pに含まれる I ピ クチャおよび Pビクチャの合計数 + 2」 で表わされる数のフレーム (例えば、 M = 1 5、 N = 3の MPEG符号化ス ト リームを逆転再生する場合、 7 フレーム) を蓄 積することが可能なようにすることにより、 G0Pをまたいだ部分も連続して、 全て のフレームを逆転再生することができる。
図 2 4を用いて、 ハードディスク 1 1 2から、 GOP 1乃至 G0P 3の画像データが 逆転再生される場合の復号処理について説明する。 この図 2 4は、 MPEG逆転再生 デコーダの動作例を示している。
コン トローラ 3 4は、 サ一ボ回路 1 1 1 を制御して、 ハードディスク 1 1 2か ら、 まず G0P 3、 次いで G0P 2の MPEG符号化スト リームを再生回路 1 2 1に出力さ せる。 再生回路 1 2 1は、 ス ト リ一ムバヅファ 6 1 に、 G0P 3、 次いで G0P 2の MP EG符号化ス ト リームを蓄積させる。
再生回路 1 2 1は、 ス ト リームバヅファ 6 1から G0P 3の先頭フレーム I 3 2を 読み出し、 再生ス ト リームの最初のフレームとして、 MPEGビデオデコーダ 1 2 2 に出力する。 フレーム 1 3 2は I ビクチャであるから、 復号のために参照画像を 必要としないので、 MPEGビデオデコーダ 1 2 2において復号され、 ビデオバヅフ ァ 3 3に蓄積される。 ビデオバヅファ 3 3において、 復号されたフレーム I 3 2 が蓄積される領域を、 バッファ 1 とする。
ここで、 それそれのフレームのデータは、 図 2を用いて説明したヘッダ一およ び拡張データに記載されたパラメ一夕を基に復号される。 上述したように、 MPEG ビデオデコーダ 1 2 2のビクチャデコーダ 4 5において、 それそれのパラメータ がデコードされ、 スライスデコーダ制御回路 4 6に供給されて、 復号処理に用い られる。 GOP 1力復号される場合、 GOP 1の sequence— header、 sequence— extensi o n、 および GOPJieaderに記載されている上位層のパラメ一夕 (例えば、 上述した量 子化マト リクス) を用いて復号が実施され、 G0P 2が復号される場合、 G0P 2の se quence— header、 sequence— extens i on、 および GOP— header【こ言 3載されてレヽる上位層 のパラメータを用いて復号が実施され、 G0P 3が復号される場合、 G0P 3の sequen ce— header、 sequence— extens i on、 および GOP— header iこ言己載されてレヽる上位層のノ s ラメ一夕を用いて復号が実施される。
しかしながら、 逆転再生時においては、 G0P毎に復号が実施されないので、 MPE Gビデオデコーダ 1 2 2は、 それぞれの G0Pにおいて、 最初に I ピクチャがデコ一 ドされた時に、 上位層パラメ一夕をコン トローラ 3 4に供給する。 コン トローラ 3 4は、 内部に有する図示しないメモリに、 供給された上位層パラメ一タを保持 する。
コン トローラ 3 4は、 MPEGビデオデコーダ 1 2 2において実行される復号処理 を監視し、 復号処理中のフレームに対応する上位層パラメ一夕を内部のメモリか ら読み出して MPEGビデオデコーダ 1 2 2に供給し、 適切な復号処理がなされるよ うにする。
図 2 4中、 再生ス ト リームのフレーム番号の上部に示される数字は、 量子化 I Dであり、 再生ス ト リームの各フレームは、 図 2 3を用いて説明した順方向の復 号と同様に、 量子化 I Dを基に復号される。
なお、 本実施の形態においては、 コン トローラ 3 4がその内部にメモリを有し、 上位層符号化パラメ一夕を保持するものとして説明しているが、 コン トローラ 3 4に接続されたメモリを設けるようにし、 コン トローラ 3 4が内部にメモリを保 有せずに、 外部のメモリに上位層符号化パラメ一夕を保持し、 必要に応じて読み 出して、 MPEGビデオデコーダ 1 2 2に供給することができるようにしても良い。 また、 MPEGビデオデコーダ 1 2 2に、 G0Pの上位層符号化パラメータを保持する ためのメモリを備えさせるようにしてもよい。 更に、 上位層符号化パラメータな どの符号化条件が既知である場合、 MPEGビデオデコーダ 1 2 2に、 符号化条件を 予め設定しても良いし、 上位層符号化パラメ一夕が G0Pによって変化しないことが 既知である場合、 コン トローラ 3 4によって、 G0P毎に上位層符号化パラメ一夕を 読み出して、 フレーム毎に MPEGビデオデコーダ 1 2 2に設定するのではなく、 動 作開始時に一度だけ、 MPEGビデオデコーダ 1 2 2に符号化パラメータを設定する ようにしても良い。 再生回路 1 2 1は、 ス ト リ一ムバッファ 6 1からフレーム P 3 5を読み出し、 再生ス ト リームの次のフレームとして、 MPEGビデオデコーダ 1 2 2に出力する。 MPEGビデオデコーダ 1 2 2において、 フレーム P 3 5は、 バッファ 1 に記録され ているフレーム I 3 2を前方向参照画像として復号され、 ビデオバヅファ 3 3に 蓄積される。 ビデオバッファ 3 3において、 復号されたフレーム P 3 5が蓄積さ れる領域を、 ノ ヅファ 2とする。
再生回路 1 2 1は、 ス ト リームノ ッファ 6 1からフレーム P 3 8、 フレーム P 3 b、 およびフレーム P 3 eを順次読み出し、 再生ス ト リームとして出力する。 これらの Pビクチャは、 MPEGビデオデコーダ 1 2 2において、 一つ前に復号され た Pピクチヤを前方向参照画像として復号され、 ビデオバッファ 3 3に蓄積され る。 ビデオバッファ 3 3において、 復号されたこれらの Pピクチャのフレームが 蓄積される領域を、 バッファ 3乃至バッファ 5 とする。
このとき、 G0P 3の I ピクチャおよび Pピクチャは、 全て復号され、 ビデオバッ ファ 3 3に蓄積されている状態である。
続いて、 再生回路 1 2 1は、 ス ト リームバッファ 6 1から G0P 2のフレーム I 2 2を読み出し、 再生ス ト リームとして出力する。 MPEGデコーダ 1 2 2において、 I ビクチャであるフレーム I 2 2は、 参照画像を必要とせずに復号され、 ビデオ ノ ソファ 3 3に蓄積される。 復号されたフレーム I 2 2が蓄積される領域をバヅ ファ 6 とする。 また、 バッファ 6にフレーム 1 2 2が蓄積される夕ィ ミングで、 バッファ 5から、 G 0 P 3のフレーム P 3 eか読み出されて、 出力され、 逆転再 生の最初の画像として表示される。
再生回路 1 2 1は、 ス ト リームバヅファ 6 1から、 G0P 3のフ レ一ム B 3 d、 す なわち、 G0P 3の Bピクチヤの中で、 初めに逆転再生されるべきフレームを読み出 し、 再生ス ト リームとして出力する。 MPEGデコーダ 1 2 2において、 フレーム B 3 dは、 ノ ッファ 4のフレーム P 3 bを前方向参照画像、 ノ ソファ 5のフレーム P 3 eを後方向参照画像として復号され、 ビデオバッファ 3 3に蓄積される。 復 号されたフレーム B 3 dが蓄積される領域をバッファ 7 とする。
バッファ 7に蓄積されたフレーム B 3 は、 フレーム/フィ一ルド変換および 出力ビデオ同期タイ ミングへのタイ ミ ング合わせが行われたあと、 出力され、 表 示される。 フレーム B 3 dの表示と同一のタイ ミングで、 再生回路 1 2 1は、 ス ト リ一ムバッファ 6 1から、 GOP 3のフレーム B 3 cを読み出して、 MPEGビデ ォデコーダ 1 2 2に出力する。 MPEGビデオデコーダ 1 2 2において、 フレーム B 3 cは、 フレーム B 3 dと同様に、 バッファ 4のフレーム P 3 bを前方向参照画 像、 ノ ソファ 5のフレーム P 3 eを後方向参照画像として復号される。
先に復号され、 出力されたフレーム B 3 は、 Bビクチャであるので、 他のフ レームの復号のために参照されることはない。 したがって、 復号されたフレーム P 3 cは、 フレーム B 3 dに代わって、 ノ ソファ 7に蓄積 (すなわち、 ノ ヅファ 7に上書き) され、 フレーム /フィールド変換および出力ビデオ同期タイ ミング へのタイ ミング合わせが行われたあと、 出力され、 表示される。
再生回路 1 2 1は、 ス ト リ一ムバッファ 6 1から、 G0P2のフレーム P 2 5を読 み出して、 MPEGビデオデコーダ 1 2 2に出力する。 MPEGビデオデコーダ 1 2 2に おいて、 G0P2のフレーム P 2 5は、 ノ ソファ 6のフレーム I 2 2を前方向参照画 像として復号される。 バッファ 5に蓄積されているフレーム P 3 eは、 これ以降、 参照画像として利用されることはないので、 復号されたフレーム P 2 5は、 フレ —ム P 3 eに代わって、 ノ ヅファ 5に蓄積される。 そして、 ノ ッファ 5にフレー ム P 2 5が蓄積されるのと同一の夕ィ ミングで、 バッファ 4のフレーム P 3 bが 読み出され、 表示される。
再生回路 1 2 1は、 ス ト リームノ ヅファ 6 1から、 G0P3のフレーム B 3 aを読 み出し、 再生ス ト リームとして出力する。 MPEGデコーダ 1 22において、 フレー ム B 3 aは、 ノ ヅファ 3のフレーム P 3 8を前方向参照画像、 ノ ソファ 4のフレ —ム P 3 bを後方向参照画像として復号され、 ビデオバッファ 3 3のバッファ 7 に蓄積される。
バヅファ 7に蓄積されたフレーム: B 3 aは、 フレーム/フィール ド変換および 出力ビデオ同期タイ ミ ングへのタイ ミング合わせが行われたあと、 出力され、 表 示される。 フレーム B 3 aの表示と同一の夕ィ ミングで、 再生回路 1 2 1は、 ス ト リ一ムバッファ 6 1から、 GOP 3のフレーム B 3 9を読み出して、 MPEGビデ ォデコーダ 1 2 2に出力する。 MPEGビデオデコーダ 1 2 2において、 フレーム B 39は、 フレーム B 3 aと同様に、 バッファ 3のフレーム P 3 8を前方向参照画 像、 バッファ 4のフレーム P 3 bを後方向参照画像として復号され、 フ レーム B 3 aに代わって、 バッファ 7に蓄積され、 フレーム/フィール ド変換および出力 ビデオ同期タイ ミ ングへのタイ ミング合わせが行われたあと、 出力され、 表示さ れる。
再生回路 1 2 1は、 ス ト リームバッファ 6 1から、 G0P 2のフレーム P 2 8を読 み出して、 MPEGビデオデコーダ 1 2 2に出力する。 MPEGビデオデコーダ 1 2 2に おいて、 G0P 2のフレーム P 2 8は、 ノ ソ ファ 5のフレーム P 2 5を前方向参照画 像として復号される。 バッファ 4に蓄積されているフレーム P 3 bは、 これ以降、 参照画像として利用されることはないので、 復号されたフレーム P 2 8は、 フレ ーム P 3 bに代わって、 ノ ッファ 4に蓄積される。 そして、 ノ ソファ 4にフレー ム P 2 8が蓄積されるのと同一のタイ ミングで、 ノ ッファ 3のフレーム P 3 8が 読み出され、 表示される。
このように、 G0P 2の I ピクチャもしくは Pピクチャが復号され、 バッファ 3 3 に蓄積される夕イ ミングで、 G0P 3の I ビクチャもしくは Pピクチャが、 バッファ 3 3から読み出されて、 表示される。
以下、 同様にして、 図 2 4に示されるように、 G0P 3の残りの Bピクチャ、 およ び G 0 P 2の残りの Pピクチャが、 B 3 7 , B 3 6 , P 2 b , B 3 4 , B 3 3 , P 2 eの順に復号される。 復号された Bビクチャは、 バッファ 7に蓄積され、 順 次読み出されて表示される。 復号された G0P 2の Pビクチャは、 順次、 参照が終了 したフレームが蓄積されていたバッファ 1乃至 6のいずれかに蓄積され、 バッフ ァ 1乃至 6のいずれかに既に蓄積されている G0P 3の Pピクチヤが、 その夕ィ ミン グで、 逆転再生の順番にかなうように、 Bピクチャの間に読み出されて出力され る。
再生回路 1 2 1は、 ス ト リームバヅファ 6 1から、 G0P 3のフレーム B 3 1、 次 いで、 フレーム B 3 0を読み出して、 MPEGビデオデコーダ 1 2 2に出力する。 MP EGビデオデコーダ 1 2 2において、 フレーム B 3 1およびフレーム B 3 0の復号 に必要な前方向参照画像であるフレーム P 2 eはバッファ 2に、 後方向参照画像 である I 3 2は、 バッファ 1にそれそれ蓄積されているので、 G0P 3のはじめの 2 フレーム、 すなわち、 逆転再生時に最後に表示されるべきフレームも、 復号する ことが可能となる。
復号されたフレーム B 3 1およびフレーム B 3 0は、 順次、 バヅファ 7に蓄積 され、 フレーム/フィ一ルド変換および出力ビデオ同期タイ ミングへの夕ィ ミン グ合わせが行われたあと、 出力され、 表示される。
G0P 3の全てのフレームがス ト リームバッファ 6 1から読み出された後、 コン ト ローラ 3 4は、 サ一ボ回路 1 1 1 を制御して、 ハ一ドディスク 1 1 2から GOP 1 を 読み出させ、 再生回路 1 2 1に供給させる。 再生回路 1 2 1は、 所定の処理を実 行し、 GOP 1のスタートコードを抽出して、 スタートコードバッファ 6 2に記録さ せるとともに、 GOP 1の符号化ス ト リームをス ト リームバッファ 6 1に供給して蓄 積させる。
次に、 再生回路 1 2 1は、 ス ト リームバッファ 6 1から、 GOP 1のフレーム I 1 2を読み出し、 再生ス ト リ一ムとして、 MPEGビデオデコーダ 1 2 2に出力する。 フレーム I 1 2は、 I ピクチャであるから、 MPEGビデオデコーダ 1 2 2において、 他の画像を参照せずに復号され、 この後の処理で参照されることのないバッファ 1のフレーム 1 3 2に代わって、 ノ ソファ 1に出力され、 蓄積される。 このとき、 バッファ 2から、 フレーム P 2 eが読み出されて、 出力され、 G0P 2の逆転再生表 示が開始される。
次に、 再生回路 1 2 1は、 ス ト リームバッファ 6 1から、 G0P 2のフレーム B 2 d、 すなわち、 G0P 2の Bビクチヤの中で、 初めに逆転再生されるべきフレ一ムを 読み出し、 再生ス ト リ一ムとして出力する。 MPEGデコーダ 1 2 2において、 フレ —ム B 2 dは、 バッファ 3のフレーム P 2 bを前方向参照画像、 バヅファ 2のフ レーム P 2 eを後方向参照画像として復号され、 ビデオバヅファ 3 3に蓄積され る。 復号されたフレ一ム B 2 dは、 バヅファ 7に蓄積され、 フレーム/フィ一ル ド変換および出力ビデオ同期夕ィ ミングへのタイ ミング合わせが行われたあと、 出力され、 表示される。
以下、 同様にして、 G0P 2の、 残りの Bピクチャ、 および G〇 P 1の残りの Pピ クチャが、 B 2 c, P 1 5 , B 2 a , B 2 9 , P 1 8 , Β 2 7 , Β 2 6 , Ρ 1 b , Β 2 4 , Β 2 3 , P i e , Ρ 2 1、 Ρ 2 0の順に復号され、 順次、 参照が終了し たフレームが蓄積されていたバッファ 1乃至 7のいずれかに蓄積され、 逆転再生 の順番で読み出されて出力される。 そして、 図示はされていないが、 最後に、 GO P 1の残りの Bビクチャが復号され、 順次、 バッファ 7に蓄積され、 逆転再生の順 番で読み出されて出力される。
図 2 4を用いて説明した処理においては、 通常再生と同一速度の逆転再生を実 行したが、 再生回路 1 2 1が、 再生ストリームを通常再生時の 3分の 1の速度で MPEGビデオデコーダ 1 2 2に出力し、 MPEGビデオデコーダ 1 2 2が、 通常の 3フ レームの処理時間で 1 フレームのみの復号処理を実行して、 図示しない表示部、 もしくは表示装置に、 通常の 3フレームの表示時間に、 同一のフレームを表示さ せるようにすることにより、 3分の 1倍速の順方向再生、 および逆転再生が、 同 様の処理によって可能となる。
また、 表示出力回路 5 3が、 同一のフレームを繰り返して出力することにより、 いわゆるスチル再生も可能となる。 なお、 再生装置 1 2 1から MPEGビデオデコ一 ダ 1 2 2へのデ一夕出力速度、 および MPEGビデオデコーダ 1 2 2の処理速度を変 更することにより、 任意の nで、 n分の 1倍速の順方向再生、 および逆転再生が、 同様の処理によって可能となる。
すなわち、 本発明を用いた再生装置においては、 等倍速の逆転再生、 n分の 1 倍速の逆転再生、 スチル再生、 n分の 1倍速の順方向再生、 等倍速の順方向再生 の間での任意の速度において、 滑らかなトリヅク再生が可能となる。
また、 MPEGビデオデコーダ 1 2 2は、 MPEG 2 4 : 2 : 2 P @HL対応のデコーダ であるので、 MPEG 2 MP@MLの符号化ストリームを 6倍速で復号する能力を有する。 したがって、 再生回路 1 2 1力 MPEG 2 MP@MLの符号化ストリームから生成した 再生ストリームを、 通常再生時の 6倍の速度で MPEGビデオデコーダ 1 2 2に出力 すれば、 MPEGビデオデコーダ 1 2 2は、 MPEG 2 MP@MLの符号化ストリームを 6倍 速で復号する能力を有するので、 図示しない表示部、 もしくは表示装置に、 6フ レーム毎に抽出されたフレームを表示させるようにすることにより、 6倍速の順 方向再生、 および逆転再生が、 同様の処理によって可能となる。
すなわち、 本発明を用いた再生装置においては、 MPEG 2 MP@MLの符号化ストリ —ムを、 6倍速の逆転再生、 等倍速の逆転再生、 n分の 1倍速の逆転再生、 スチ ル再生、 n分の 1倍速の順方向再生、 等倍速の順方向再生、 6倍速の順方向再生 の間での任意の速度において、 滑らかなト リック再生が可能となる。
なお、 MPEGビデオデコーダ 1 2 2力 N倍速の復号能力を備えている場合、 本 発明の再生装置は、 同様の処理により、 N倍速の順方向再生、 および逆転再生が 可能であり、 N倍速の逆転再生、 等倍速の逆転再生、 n分の 1倍速の逆転再生、 スチル再生、 n分の 1倍速の順方向再生、 等倍速の順方向再生、 N倍速の順方向 再生の間での任意の速度において、 滑らかなト リ ック再生が可能となる。
これにより、 例えば、 映像信号の検証時において、 映像素材の内容を容易に検 証することができ、 映像素材検証作業の効率を改善したり、 映像信号の編集作業 において、 編集点を快適に検索することができ、 編集作業の効率を改善すること ができる。
上述した一連の処理は、 ソフ トウェアにより実行することもできる。 そのソフ トウエアは、 そのソフ トウェアを構成するプログラムが、 専用のハ一ドウエアに 組み込まれているコンビュ一夕、 または、 各種のプログラムをインス トールする ことで、 各種の機能を実行することが可能な、 例えば汎用のパーソナルコンビュ —タなどに、 記録媒体からインス トールされる。
この記録媒体は、 図 1 5もしくは図 2 0に示すように、 コンビュ一夕とは別に、 ユーザにプログラムを提供するために配布される、 プログラムが記録されている 磁気ディスク 1 0 1 (フロッピーディスクを含む) 、 光ディスク 1 0 2 (CD - R0 M (Compact Di sk Read Only Memory) 、 DVD (D igi tal Versat i l e D isk) を含む) . 光磁気ディスク 1 0 3 ( M D (Mini D i sk )を含む) 、 も しくは半導体メモリ 1 0 4 などよりなるパッケージメディアなどにより構成される。
また、 本明細書において、 記録媒体に記録されるプログラムを記述するステツ プは、 記載された順序に沿って時系列的に行われる処理はもちろん、 必ずしも時 系列的に処理されなく とも、 並列的あるいは個別に実行される処理をも含むもの である。
本発明の第 1の復号装置、 復号方法、 およびプログラムによれば、 符号化ス ト リームを復号し、 復号処理を並行して動作するようにしたので、 実現可能な回路 規模で実時間動作が可能な 4 : 2 : 2 P @HLに対応したビデオデコーダを実現する ことができる。 本発明の第 2の復号装置、 復号方法、 およびプログラムによれば、 符号化ス ト リームを複数のスライスデコーダで復号し、 複数のスライスデコーダにより復号 処理を並行して動作するようにしたので、 実現可能な回路規模で実時間動作が可 能な 4 : 2 : 2 P @HLに対応したビデオデコーダを実現することができる。
本発明の第 3の復号装置、 復号方法、 およびプログラムによれば、 ソース符号 化ス ト リームのピクチャを構成するスライス毎に、 ソ一ス符号化ス ト リームをデ コードし、 複数のスライスデコーダのデコードステータスを監視するとともに、 複数のスライスデコ一夕を制御し、 ピクチャに含まれるスライスの順番に関係な く、 スライスデコーダにおいて実行されるデコード処理が最も早くなるように、 スライスを複数のスライスデコーダに割り当てるようにしたので、 実現可能な回 路規模で実時間動作が可能な 4 : 2 : 2 P @HLに対応したビデオデコーダを実現す ることができる。
本発明の第 4の復号装置、 復号方法、 およびプログラムによれば、 ソース符号 化ス ト リームのピクチャを構成するスライス毎に、 ソース符号化ス ト リ一ムをデ コードし、 複数のスライスデコーダのデコ一ドステ一タスを監視するとともに、 複数のスライスデコ一タを制御し、 ピクチャに含まれるスライスの順番に関係な く、 複数のスライスデコーダのうちデコードが終了したスライスデコーダに、 デ コードすべきスライスを割り当て割り当てるようにしたので、 実現可能な回路規 模で実時間動作が可能な 4 : 2 : 2 P冊 Lに対応したビデオデコーダを実現するこ とができる。

Claims

請求の範囲
1 . 符号化ストリームを復号する復号装置において、
前記符号化ストリームを復号する複数の復号手段と、
複数の前記復号手段を並行して動作させるように制御する復号制御手段と を備えることを特徴とする復号装置。
2 . 複数の前記復号手段は、 復号処理の終了を示す信号を前記復号制御手段に出 力し、
前記復号制御手段は、 復号処理の終了を示す前記信号を出力した前記復号手段 に、 新たな前記符号化ストリームを復号させるように制御する
ことを特徴とする請求の範囲第 1項記載の復号装置。
3 . 前記符号化ストリームをバッファリングする第 1のバヅファ手段と、 前記符号化ストリームから、 前記符号化ストリームに含まれる所定の情報の単 位の始まりを表わすスタ一トコ一ドを読み出すとともに、 前記第 1のバッファ手 段に、 前記スタートコードが保持されている位置に関する位置情報を読み出す読 み出し手段と、
前記読み出し手段により読み出された、 前記スタートコードおよび前記位置情 報をバッファリングする第 2のバッファ手段と、
前記第 1のバッファ手段による前記符号化ストリームのバッファリング、 およ び前記第 2のバッファ手段による前記スタ一トコ一ドおよび前記位置情報のバッ ファ リングを制御するバヅファ リング制御手段と
を更に備えることを特徴とする請求の範囲第 1項記載の復号装置。
4 . 前記符号化ストリームは、 I S0/IEC13818— 2および ITU— T勧告 H.262に規定さ れた MPEG2の符号化ストリ一ムである
ことを特徴とする請求の範囲第 1項記載の復号装置。
5 . 複数の前記復号手段により復号され、 出力された複数の画像デ一夕のうちの 所定のものを選択する選択手段と、
前記選択手段により選択された前記画像データの入力を受け、 必要に応じて動 き補償を施す動き補償手段と
を更に備えることを特徴とする請求の範囲第 1項記載の復号装置。
6 . 前記復号手段は、 復号処理が終了したことを示す終了信号を前記選択手段に 出力し、
前記選択手段は、
複数の前記復号手段のそれそれの処理状態に対応する値を記憶する記憶手段 を有し、
前記記憶手段の値が全て第 1の値になった場合、 復号処理が終了したことを 示す前記終了信号を出力している前記復号手段に対応する前記記憶手段に記憶 されている値を、 前記第 1の値から第 2の値に変更し、
対応する前記記憶手段に記憶されている値が前記第 2の値である前記第 1の 復号手段により復号された前記画像デ一夕のうち、 いずれかの前記画像デ一夕 を選択し、
選択された前記画像データを復号した前記復号手段に対応する前記記憶手段 に記憶されている値を前記第 1の値に変更する
ことを特徴とする請求の範囲第 5項記載の復号装置。
7 . 前記復号手段により復号された前記画像データ、 前記選択手段により選択さ れた前記画像データ、 または前記動き補償手段により動き補償が施された前記画 像データを保持する保持手段と、
前記選択手段により選択された前記画像データ、 または前記動き補償手段によ り動き補償が施された前記画像データの前記保持手段による保持を制御する保持 制御手段と
を更に備えることを特徴とする請求の範囲第 5項記載の復号装置。
8 . 前記保持手段は、 前記画像データの輝度成分と色差成分をそれそれ分けて保 持する
ことを特徴とする請求の範囲第 7項記載の復号装置。
9 . 前記復号手段に供給される前記符号化ストリームのフレームの順番を変更す る変更手段を更に備え、
前記保持手段は、 画像シーケンス内のィントラ符号化フレームおよび前方向予 測符号化フレームを合計したフレーム数より少なくとも 2つ多い数のフレームを 保持することができ、
前記変更手段は、 前記符号化ストリームを逆転再生させるための所定の順番に なるように、 前記符号化ストリ一ムのフレームの順番を変更する
ことを特徴とする請求の範囲第 7項記載の復号装置。
1 0 . 前記保持手段により保持されている前記画像データを読み出して出力する 出力手段を更に備え、
前記所定の順番とは、 前記イントラ符号化フレーム、 前記前方向予測符号化フ レーム、 双方向予測符号化フレームの順番であり、 かつ、 前記双方向予測符号化 フレーム内での順番は、 符号化の順番とは逆であり、
前記出力手段は、 前記復号手段により復号され、 前記保持手段により保持され ている前記双方向予測符号化フレームを順次読み出して出力するとともに、 所定 のタイミングで、 前記保持手段により保持されている前記ィントラ符号化フレー ム、 もしくは前記前方向予測符号化フレームを読み出して、 前記双方向予測符号 化フレームの間の所定の位置に挿入して出力する
ことを特徴とする請求の範囲第 9項記載の復号装置。
1 1 . 前記所定の順番とは、 前記出力手段により前記イントラ符号化フレーム、 もしくは前記前方向予測符号化フレームが出力されるタイミングで、 前記復号手 段により復号された、 一つ前の前記画像シーケンスの前記ィントラ符号化フレー ムもしくは前記前方向予測符号化フレームが、 前記保持手段により保持されるよ うな順番である
ことを特徴とする請求の範囲第 1 0項記載の復号装置。
1 2 . 前記符号化ストリームを復号するために必要な情報を記録する記録手段と、 前記記録手段による前記情報の記録および前記情報の前記復号手段への供給を 制御する制御手段と
を更に備え、
前記符号化ストリームは、 前記情報を含み、
前記制御手段は、 前記復号手段の復号処理に必要な前記情報を選択して、 前記 復号手段に供給する ことを特徴とする請求の範囲第 9項記載の復号装置。
1 3 . 前記制御手段が前記復号手段に供給する前記情報は、 前記復号手段により 復号されているフレームに対応する上位層符号化パラメ一夕である
ことを特徴とする請求の範囲第 1 2項記載の復号装置。
1 4 . 前記保持手段により保持されている前記画像データを読み出して出力する 出力手段を更に備え、
前記復号手段は、 前記符号化ストリームを通常再生に必要な処理速度の N倍速 で復号することが可能であり、
前記出力手段は、 前記保持手段により保持されている前記画像データのうち N フレーム毎の前記画像データを出力することが可能である
ことを特徴とする請求の範囲第 7項記載の復号装置。
1 5 . 前記符号化ストリームを保持する第 1の保持手段と、
前記符号化ストリ一ムから、 前記符号化ストリームに含まれる所定の情報の単 位の始まりを表わすスタートコードを読み出すとともに、 前記第 1の保持手段に 前記スタートコ一ドが保持されている位置に関する位置情報を読み出す読み出し 手段と、
前記読み出し手段により読み出された、 前記スタートコ一ドおよび前記位置情 報を保持する第 2の保持手段と、
前記第 1の保持手段による前記画像データの保持、 および前記第 2の保持手段 による前記スタートコ一ドおよび前記位置情報の保持を制御する第 1の保持制御 手段と、
複数の前記復号手段により復号され、 出力された複数の画像データのうちの所 定のものを選択する選択手段と、
前記選択手段により選択された前記画像データの入力を受け、 必要に応じて動 き補償を施す動き補償手段と、
前記選択手段により選択された前記画像データ、 または前記動き補償手段によ り動き補償が施された前記画像データを保持する第 3の保持手段と、
前記選択手段により選択された前記画像データ、 または前記動き補償手段によ り動き補償が施された前記画像デ一夕の前記第 3の保持手段による保持を、 前記 第 1の保持制御手段とは独立して制御する第 2の保持制御手段と を更に備えることを特徴とする請求の範囲第 1項記載の復号装置。
1 6 . 符号化ス ト リームを復号する復号装置の復号方法において、
前記符号化ス ト リームを復号する複数の復号ステップと、
複数の前記復号ステツプの処理を並行して動作させるように制御する復号制御 ステップと
を含むことを特徴とする復号方法。
1 7 . 符号化ス ト リームを復号する復号装置用のプログラムであって、
前記符号化ス ト リームを復号する複数の復号ステツブと、
複数の前記復号ステップの処理を並行して動作させるように制御する復号制御 ステップと
を含むことを特徴とするコンピュー夕が読み取り可能なプログラムが記録され ている記録媒体。
1 8 . 符号化ス ト リームを復号する復号装置を制御するコンピュータが実行可能 なプログラムであって、
前記符号化ス ト リームを復号する複数の復号ステップと、
複数の前記復号ステツプの処理を並行して動作させるように制御する復号制御 ステップと
を含むことを特徴とするプログラム。
1 9 . 符号化ス ト リームを復号する復号装置において、
前記符号化ス 卜 リームを復号する複数のスライスデコーダと、
複数の前記スライスデコーダを並行して動作させるように制御するスライスデ コーダ制御手段と
を備えることを特徴とする復号装置。
2 0 . 符号化ス ト リームを復号する復号装置の復号方法において、
前記符号化ス ト リームを復号する複数のスライスデコーダによる復号を制御す る復号制御ステップと、
前記復号制御ステツプを並行して処理させるように制御するスライスデコーダ 制御ステップと を含むことを特徴とする復号方法。
2 1 . 符号化ス ト リームを復号する復号装置用のプログラムであって、
前記符号化ス ト リームを復号する複数のスライスデコーダによる復号を制御す る復号制御ステツブと、
前記復号制御ステヅブを並行して処理させるように制御するスライスデコーダ 制御ステツプと
を含むことを特徴とするコンピュー夕が読み取り可能なプログラムが記録され ている記録媒体。
2 2 . 符号化ス ト リームを復号する復号装置を制御するコンビユー夕が実行可能 なプログラムであって、
前記符号化ス ト リームを復号する複数のスライスデコーダによる復号を制御す る復号制御ステップと、
前記復号制御ステツブを並行して処理させるように制御するスライスデコーダ 制御ステップと
を含むことを特徴とするプログラム。
2 3 . ソ一ス符号化ス ト リームを復号する復号装置において、
前記ソース符号化ス ト リームのビクチャを構成するスライス毎に、 前記ソース 符号化ス ト リームをデコードする複数のスライスデコーダと、
前記複数のスライスデコーダのデコードステータスを監視するとともに、 前記 複数のスライスデコ一夕を制御する制御手段と
を備え、
前記制御手段は、 前記ピクチャに含まれる前記スライスの順番に関係なく、 前 記スライスデコーダによる前記ピクチャのデコ一ド処理が最も早くなるように、 前記スライスを前記複数のスライスデコーダに割り当てる
ことを特徴とする符号化装置。
2 4 . ソース符号化ス ト リ一ムを復号する復号装置の復号方法において、 複数のスライスデコーダによる、 前記ソ一ス符号化ス ト リームのピクチャを構 成するスライス毎の前記ソース符号化ス ト リームのデコ一ド処理を制御するデコ ―ド処理制御ステップと、 前記複数のスライスデコーダのデコ一ドステ一タスを監視するとともに、 前記 複数のスライスデコ一夕を制御する制御ステツプと
を含み、
前記制御ステツプの処理では、 前記ピクチャに含まれる前記スライスの順番に 関係なく、 前記スライスデコーダにおいて実行される前記デコード処理が最も早 くなるように、 前記スライスを前記複数のスライスデコーダに割り当てる ことを特徴とする符号化方法。
2 5 . ソース符号化ス ト リームを復号する復号装置を制御するコンピュータが実 行可能なプログラムであって、
複数のスライスデコーダによる、 前記ソース符号化ス ト リ一ムのピクチャを構 成するスライス毎の前記ソース符号化ス ト リームのデコ一ド処理を制御するデコ 一ド処理制御ステップと、
前記複数のスライスデコーダのデコ一ドステ一タスを監視するとともに、 前記 複数のスライスデコ一タを制御する制御ステップと
を含み、
前記制御ステツプの処理では、 前記ビクチャに含まれる前記スライスの順番に 関係なく、 前記スライスデコーダにおいて実行される前記デコード処理が最も早 くなるように、 前記スライスを前記複数のスライスデコーダに割り当てる ことを特徴とするプログラム。
2 6 . ソース符号化ス ト リームを復号する復号装置において、
前記ソース符号化ス ト リ一ムのピクチャを構成するスライス毎に、 前記ソース 符号化ス ト リームをデコ一ドする複数のスライスデコーダと、
前記複数のスライスデコーダのデコ一ドステ一タスを監視するとともに、 前記 複数のスライスデコ一夕を制御する制御手段と
を備え、
前記制御手段は、 前記ビクチャに含まれる前記スライスの順番に関係なく、 前 記複数のスライスデコーダのうちデコ一ドが終了した前記スライスデコーダに、 デコ一ドすべき前記スライスを割り当てる
ことを特徴とする符号化装置。
2 7 . ソース符号化ス ト リームを復号する復号装置の復号方法において、 複数のスライスデコーダによる、 前記ソース符号化ス ト リームのピクチャを構 成するスライス毎の前記ソース符号化ス ト リ一ムのデコード処理を制御するデコ
―ド処理制御ステツブと、
前記複数のスライスデコーダのデコ一ドステ一タスを監視するとともに、 前記 複数のスライスデコ一タを制御する制御ステツプと
を含み、
前記制御ステツブの処理では、 前記ピクチヤに含まれる前記スライスの順番に 関係なく、 前記複数のスライスデコーダのうち、 前記デコード処理制御ステップ の処理によりデコード処理が終了した前記スライスデコーダに、 デコ一ドすべき 前記スライスを割り当てる
ことを特徴とする符号化方法。
2 8 . ソース符号化ス ト リームを復号する復号装置を制御するコンピュータが実 行可能なプログラムであって、
複数のスライスデコーダによる、 前記ソース符号化ス ト リ一ムのピクチャを構 成するスライス毎の前記ソース符号化ス ト リ一ムのデコード処理を制御するデコ ―ド処理制御ステツブと、
前記複数のスライスデコーダのデコ一ドステ一タスを監視するとともに、 前記 複数のスライスデコ一夕を制御する制御ステツブと
を含み、
前記制御ステツプの処理では、 前記ピクチャに含まれる前記スライスの順番に 関係なく、 前記複数のスライスデコーダのうち、 前記デコード処理制御ステップ の処理によりデコ一ド処理が終了した前記スライスデコーダに、 デコ一ドすべき 前記スライスを割り当てる
ことを特徴とするプログラム。
PCT/JP2001/003204 2000-04-14 2001-04-13 Decoder and decoding method, recorded medium, and program WO2001080567A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE2001630180 DE60130180T2 (de) 2000-04-14 2001-04-13 Verfahren zur kodierung und dekodierung, aufzeichnungsmedium und programm
CA2376871A CA2376871C (en) 2000-04-14 2001-04-13 Decoder and decoding method, recorded medium, and program
EP01921837A EP1187489B1 (en) 2000-04-14 2001-04-13 Decoder and decoding method, recorded medium, and program
US12/197,574 US20090010334A1 (en) 2000-04-14 2008-08-25 Decoding device, decoding method, recording medium, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000112951 2000-04-14
JP2000-112951 2000-04-14

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/197,574 Continuation US20090010334A1 (en) 2000-04-14 2008-08-25 Decoding device, decoding method, recording medium, and program

Publications (1)

Publication Number Publication Date
WO2001080567A1 true WO2001080567A1 (en) 2001-10-25

Family

ID=18625011

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2001/003204 WO2001080567A1 (en) 2000-04-14 2001-04-13 Decoder and decoding method, recorded medium, and program

Country Status (8)

Country Link
US (2) US20020114388A1 (ja)
EP (1) EP1187489B1 (ja)
JP (2) JP5041626B2 (ja)
KR (1) KR100796085B1 (ja)
CN (1) CN1223196C (ja)
CA (1) CA2376871C (ja)
DE (1) DE60130180T2 (ja)
WO (1) WO2001080567A1 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7292772B2 (en) * 2000-05-29 2007-11-06 Sony Corporation Method and apparatus for decoding and recording medium for a coded video stream
GB2377840A (en) * 2001-07-18 2003-01-22 Sony Uk Ltd Audio/video recording and multiplexing apparatus
WO2003053066A1 (en) 2001-12-17 2003-06-26 Microsoft Corporation Skip macroblock coding
WO2003063500A1 (en) * 2002-01-22 2003-07-31 Microsoft Corporation Methods and systems for encoding and decoding video data to enable random access and splicing
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US7280700B2 (en) * 2002-07-05 2007-10-09 Microsoft Corporation Optimization techniques for data compression
US7154952B2 (en) 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
FR2842979B1 (fr) * 2002-07-24 2004-10-08 Thomson Licensing Sa Procede et dispositif de traitement de donnees numeriques
US7606308B2 (en) * 2003-09-07 2009-10-20 Microsoft Corporation Signaling macroblock mode information for macroblocks of interlaced forward-predicted fields
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7092576B2 (en) * 2003-09-07 2006-08-15 Microsoft Corporation Bitplane coding for macroblock field/frame coding type information
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US8094711B2 (en) * 2003-09-17 2012-01-10 Thomson Licensing Adaptive reference picture generation
KR101082233B1 (ko) * 2004-01-20 2011-11-09 파나소닉 주식회사 화상 부호화 방법, 화상 복호화 방법, 화상 부호화 장치,화상 복호화 장치 및 그 프로그램
EP1714484A4 (en) 2004-01-30 2009-03-18 Panasonic Corp BILDCODE AND DECODE PROCESSING; DEVICE AND PROGRAM THEREFOR
CN1910922B (zh) 2004-01-30 2013-04-17 松下电器产业株式会社 运动图片编码方法和运动图片解码方法
CN100571356C (zh) * 2004-04-28 2009-12-16 松下电器产业株式会社 流产生装置,流产生方法,流再生装置,流再生方法
EP1751955B1 (en) 2004-05-13 2009-03-25 Qualcomm, Incorporated Header compression of multimedia data transmitted over a wireless communication system
CN1306822C (zh) * 2004-07-30 2007-03-21 联合信源数字音视频技术(北京)有限公司 一种基于软硬件协同控制的视频解码器
US8155186B2 (en) * 2004-08-11 2012-04-10 Hitachi, Ltd. Bit stream recording medium, video encoder, and video decoder
JP4438059B2 (ja) * 2004-08-24 2010-03-24 キヤノン株式会社 画像再生装置及びその制御方法
JP4453518B2 (ja) * 2004-10-29 2010-04-21 ソニー株式会社 符号化及び復号装置並びに符号化及び復号方法
EP1843351B1 (en) * 2005-01-28 2012-08-22 Panasonic Corporation Recording medium, program, and reproduction method
US9077960B2 (en) 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
JP4182442B2 (ja) * 2006-04-27 2008-11-19 ソニー株式会社 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
US20080253449A1 (en) * 2007-04-13 2008-10-16 Yoji Shimizu Information apparatus and method
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US8731065B2 (en) 2008-01-24 2014-05-20 Nec Corporation Dynamic image stream processing method and device, and dynamic image reproduction device and dynamic image distribution device using the same
US7925774B2 (en) 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
WO2010103855A1 (ja) * 2009-03-13 2010-09-16 パナソニック株式会社 音声復号装置及び音声復号方法
KR20110017303A (ko) * 2009-08-13 2011-02-21 삼성전자주식회사 회전변환을 이용한 영상 부호화, 복호화 방법 및 장치
US9561730B2 (en) 2010-04-08 2017-02-07 Qualcomm Incorporated Wireless power transmission in electric vehicles
US10343535B2 (en) 2010-04-08 2019-07-09 Witricity Corporation Wireless power antenna alignment adjustment system for vehicles
US10244239B2 (en) * 2010-12-28 2019-03-26 Dolby Laboratories Licensing Corporation Parameter set for picture segmentation
WO2013108634A1 (ja) * 2012-01-18 2013-07-25 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに画像復号装置、画像復号方法及び画像復号プログラム
JP2013168932A (ja) * 2012-01-18 2013-08-29 Jvc Kenwood Corp 画像復号装置、画像復号方法及び画像復号プログラム
CN105847827B (zh) * 2012-01-20 2019-03-08 索尼公司 有效度图编码的复杂度降低
US10271069B2 (en) 2016-08-31 2019-04-23 Microsoft Technology Licensing, Llc Selective use of start code emulation prevention
JPWO2018142596A1 (ja) * 2017-02-03 2019-02-07 三菱電機株式会社 符号化装置、符号化方法および符号化プログラム
WO2019065444A1 (ja) * 2017-09-26 2019-04-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0723397A (ja) * 1993-03-05 1995-01-24 Sony Corp 画像信号復号化装置及び画像信号復号化方法
JPH0870457A (ja) * 1994-08-29 1996-03-12 Graphics Commun Lab:Kk 並列処理による画像復号装置
JPH08130745A (ja) * 1994-10-28 1996-05-21 Matsushita Electric Ind Co Ltd 復号化システム、復号化装置および復号化回路
JPH08205142A (ja) * 1994-12-28 1996-08-09 Daewoo Electron Co Ltd ディジタルビデオ信号への符号化/復号化装置
JPH10145237A (ja) * 1996-11-11 1998-05-29 Toshiba Corp 圧縮データ復号装置
JPH10257436A (ja) * 1997-03-10 1998-09-25 Atsushi Matsushita 動画像の自動階層構造化方法及びこれを用いたブラウジング方法
JP2000030047A (ja) * 1998-07-15 2000-01-28 Sony Corp 符号化装置とその方法および復号化装置とその方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379070A (en) * 1992-10-02 1995-01-03 Zoran Corporation Parallel encoding/decoding of DCT compression/decompression algorithms
US5381145A (en) * 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
AU5632394A (en) * 1993-03-05 1994-09-08 Sony Corporation Apparatus and method for reproducing a prediction-encoded video signal
CA2145361C (en) * 1994-03-24 1999-09-07 Martin William Sotheran Buffer manager
US5510842A (en) * 1994-05-04 1996-04-23 Matsushita Electric Corporation Of America Parallel architecture for a high definition television video decoder having multiple independent frame memories
JP3250588B2 (ja) * 1994-07-12 2002-01-28 ソニー株式会社 データ再生装置
US5532744A (en) * 1994-08-22 1996-07-02 Philips Electronics North America Corporation Method and apparatus for decoding digital video using parallel processing
JP3034173B2 (ja) * 1994-10-31 2000-04-17 株式会社グラフィックス・コミュニケーション・ラボラトリーズ 画像信号処理装置
EP0720372A1 (en) * 1994-12-30 1996-07-03 Daewoo Electronics Co., Ltd Apparatus for parallel encoding/decoding of digital video signals
US5959690A (en) * 1996-02-20 1999-09-28 Sas Institute, Inc. Method and apparatus for transitions and other special effects in digital motion video
JPH1056641A (ja) * 1996-08-09 1998-02-24 Sharp Corp Mpegデコーダ
JPH10150636A (ja) * 1996-11-19 1998-06-02 Sony Corp 映像信号再生装置及び映像信号の再生方法
JPH10178644A (ja) * 1996-12-18 1998-06-30 Sharp Corp 動画像復号装置
US6201927B1 (en) * 1997-02-18 2001-03-13 Mary Lafuze Comer Trick play reproduction of MPEG encoded signals
JPH10262215A (ja) * 1997-03-19 1998-09-29 Fujitsu Ltd 動画像復号装置
JP3662129B2 (ja) * 1997-11-11 2005-06-22 松下電器産業株式会社 マルチメディア情報編集装置
JP3961654B2 (ja) * 1997-12-22 2007-08-22 株式会社東芝 画像データ復号化装置及び画像データ復号化方法
JP3093724B2 (ja) * 1998-04-27 2000-10-03 日本電気アイシーマイコンシステム株式会社 動画像データ再生装置及び動画像データの逆再生方法
JPH11341489A (ja) * 1998-05-25 1999-12-10 Sony Corp 画像復号化装置とその方法
DE69922628T2 (de) * 1998-06-05 2005-11-10 Koninklijke Philips Electronics N.V. Aufzeichnung und wiedergabe eines informationssignals in/von einer spur auf einem aufzeichnungsträger

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0723397A (ja) * 1993-03-05 1995-01-24 Sony Corp 画像信号復号化装置及び画像信号復号化方法
JPH0870457A (ja) * 1994-08-29 1996-03-12 Graphics Commun Lab:Kk 並列処理による画像復号装置
JPH08130745A (ja) * 1994-10-28 1996-05-21 Matsushita Electric Ind Co Ltd 復号化システム、復号化装置および復号化回路
JPH08205142A (ja) * 1994-12-28 1996-08-09 Daewoo Electron Co Ltd ディジタルビデオ信号への符号化/復号化装置
JPH10145237A (ja) * 1996-11-11 1998-05-29 Toshiba Corp 圧縮データ復号装置
JPH10257436A (ja) * 1997-03-10 1998-09-25 Atsushi Matsushita 動画像の自動階層構造化方法及びこれを用いたブラウジング方法
JP2000030047A (ja) * 1998-07-15 2000-01-28 Sony Corp 符号化装置とその方法および復号化装置とその方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1187489A4 *

Also Published As

Publication number Publication date
US20020114388A1 (en) 2002-08-22
CA2376871A1 (en) 2001-10-25
DE60130180T2 (de) 2008-05-15
EP1187489B1 (en) 2007-08-29
DE60130180D1 (de) 2007-10-11
CA2376871C (en) 2012-02-07
JP5041626B2 (ja) 2012-10-03
CN1366776A (zh) 2002-08-28
EP1187489A1 (en) 2002-03-13
JP2011172243A (ja) 2011-09-01
CN1223196C (zh) 2005-10-12
KR20020026184A (ko) 2002-04-06
JP2001359107A (ja) 2001-12-26
EP1187489A4 (en) 2005-12-14
US20090010334A1 (en) 2009-01-08
KR100796085B1 (ko) 2008-01-21

Similar Documents

Publication Publication Date Title
EP1187489B1 (en) Decoder and decoding method, recorded medium, and program
US7292772B2 (en) Method and apparatus for decoding and recording medium for a coded video stream
CN100508585C (zh) 用于控制数字视频比特流逆向播放的装置和方法
US8260122B2 (en) MPEG picture data recording apparatus, MPEG picture data recording method, MPEG picture data recording medium, MPEG picture data generating apparatus, MPEG picture data reproducing apparatus, and MPEG picture data reproducing method
WO1995002946A1 (en) Decoding method and apparatus
JP3147792B2 (ja) 高速再生のためのビデオデータの復号化方法及びその装置
US20050141620A1 (en) Decoding apparatus and decoding method
JP4906197B2 (ja) 復号装置および方法、並びに記録媒体
JP3748234B2 (ja) Mpegデータ記録方法
JPH10336586A (ja) 画像処理装置および画像処理方法
JPH0898142A (ja) 画像再生装置
JP3748243B2 (ja) Mpegデータ記録装置
JP3748245B2 (ja) Mpegデータ記録装置
JP3748241B2 (ja) Mpegデータ記録方法
JP3748240B2 (ja) Mpegデータ記録方法
JP3748242B2 (ja) Mpegデータ記録方法
JP3748244B2 (ja) Mpegデータ記録装置
JP2000123485A (ja) 記録装置および方法
TWI272849B (en) Decoder and decoding method, recording medium, and program
JP2008005520A (ja) Mpegデータ記録再生装置
JP2007325304A (ja) Mpegデータ記録再生方法
JP2007336574A (ja) Mpegデータ記録再生装置
JP2008005519A (ja) Mpegデータ記録再生装置
JP2008005521A (ja) Mpegデータ記録再生方法
JP2008005522A (ja) Mpegデータ記録再生方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 01800918.2

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): CA CN KR US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

WWE Wipo information: entry into national phase

Ref document number: 2001921837

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2376871

Country of ref document: CA

Ref document number: 2376871

Country of ref document: CA

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1020017016037

Country of ref document: KR

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 2001921837

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10018588

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1020017016037

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 2001921837

Country of ref document: EP