WO2010113227A1 - 画像復号装置 - Google Patents

画像復号装置 Download PDF

Info

Publication number
WO2010113227A1
WO2010113227A1 PCT/JP2009/004761 JP2009004761W WO2010113227A1 WO 2010113227 A1 WO2010113227 A1 WO 2010113227A1 JP 2009004761 W JP2009004761 W JP 2009004761W WO 2010113227 A1 WO2010113227 A1 WO 2010113227A1
Authority
WO
WIPO (PCT)
Prior art keywords
image decoding
macroblock
stream
divided
block
Prior art date
Application number
PCT/JP2009/004761
Other languages
English (en)
French (fr)
Inventor
山口哲
Original Assignee
パナソニック株式会社
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=42827560&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO2010113227(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Priority to JP2011506858A priority Critical patent/JP5275454B2/ja
Publication of WO2010113227A1 publication Critical patent/WO2010113227A1/ja
Priority to US13/246,503 priority patent/US8971401B2/en

Links

Images

Classifications

    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Definitions

  • This disclosure relates to an image decoding device that decodes an encoded bitstream.
  • HDTV high-definition television
  • HD high-definition
  • Patent Document 1 discloses a device that uses a plurality of image decoding devices and performs a decoding process on a plurality of slices in a picture in parallel, thereby speeding up the processing.
  • MPEG2 Motion Picture Experts Group 2
  • one picture (picture) is composed of one or more slices
  • one slice is composed of one macroblock line or less.
  • an HD image (1920 ⁇ 1080 pixels)
  • there are always 68 or more slices in a picture there are always 68 or more slices in a picture, and if the apparatus of Patent Document 1 is used, the processing speed is increased by processing a plurality of slices in parallel. be able to.
  • the ITU-T International Telecommunication Union-Telecommunication Sector
  • H.T High-efficiency image coding standards
  • VC-1 allow one picture to be composed of one slice.
  • the size of the slice is also defined more flexibly than MPEG2, and the slice can include any number of macroblocks of 1 or more. When there are a plurality of slices, the size of each slice may not be constant.
  • the device of Patent Literature 1 performs decoding processing in parallel on a bitstream divided in units of slices. For example, when a picture is configured by one slice, this device performs parallel processing. I can't. Also, even if a picture is composed of a plurality of slices, if the size of the slice is not uniform, for example, 80% of the macroblocks constituting the picture are included in one specific slice, and the remaining When only a few macroblocks exist in a slice, the decoding processing time of this specific slice becomes dominant. For this reason, even if a plurality of decoding units are provided for parallel operation, it is not always possible to increase the processing speed corresponding to the number of decoding units.
  • An object of the present invention is to provide an image decoding apparatus that performs decoding processing in parallel regardless of the size of slices constituting a picture.
  • An image decoding apparatus is an image decoding apparatus that processes an input bitstream having encoded data obtained by performing intra prediction and encoding a moving image, and the input bit A stream divider that divides the stream into a plurality of divided streams; and a plurality of image decoding units that respectively decode the plurality of divided streams.
  • the stream divider includes, in each of the plurality of divided streams, encoded data corresponding to one or more prediction units of the plurality of prediction units in the intra prediction included in the macroblock of the moving image. Thus, the input bit stream is divided.
  • a macroblock is divided in units of one or more prediction units (for example, blocks) included in the macroblock, the macroblock can be divided regardless of the size of slices constituting the picture. it can. For this reason, efficient parallel decoding processing can be performed regardless of the size of slices constituting a picture.
  • the present invention it is possible to divide a macroblock regardless of the size of slices constituting a picture. For this reason, an efficient parallel decoding process is realizable.
  • FIG. 1 is a block diagram showing a configuration of an image decoding apparatus according to an embodiment of the present invention.
  • FIG. 2 is an explanatory diagram showing blocks included in the macroblock in the case of the color format 4: 2: 0.
  • FIG. 3 is an explanatory diagram illustrating an example of blocks referred to when the image decoding apparatus in FIG. 1 performs decoding.
  • FIG. 2 is an explanatory diagram illustrating an example of pixels referred to when decoding according to H.264.
  • FIG. 5 is an explanatory diagram of bit stream division in the stream divider of FIG.
  • FIG. 6 is a timing chart showing an example of the operation of the image decoding apparatus in FIG.
  • FIG. 7 is an explanatory diagram illustrating an example of pixels referred to by the image decoding unit in FIG.
  • FIG. 8 is a block diagram illustrating a configuration example of the image decoding unit in FIG. 1.
  • FIG. 9 is a timing chart showing an example of a basic operation of the image decoding unit in FIG.
  • FIG. 10 is a timing chart specifically showing an example of the internal operation of the image decoding unit in FIG. 1 that processes the luminance signal.
  • FIG. 11 is a block diagram illustrating a configuration of a first modification of the image decoding device in FIG. 1.
  • FIG. 12 is an explanatory diagram showing blocks included in a macroblock in the case of the color format 4: 2: 2.
  • FIG. 13 is an explanatory diagram of bit stream division in the stream divider shown in FIG. FIG.
  • FIG. 14 is a timing chart showing an example of the operation of the image decoding apparatus in FIG.
  • FIG. 15 is a block diagram illustrating a configuration of a second modification of the image decoding device in FIG. 1.
  • FIG. 16 is an explanatory diagram showing blocks included in a macroblock in the case of the color format 4: 4: 4.
  • FIG. 17 is a block diagram illustrating a configuration of a third modification of the image decoding device in FIG. 1.
  • FIG. 18 is a timing chart showing an example of the operation of the image decoding apparatus in FIG.
  • FIG. 19 is an explanatory diagram illustrating an example of blocks referred to in motion vector prediction.
  • FIG. 20 is an explanatory diagram illustrating an example of blocks referred to in the DC / AC prediction.
  • FIG. 21A is an explanatory diagram for predicting a DC coefficient.
  • FIG. 21B is an explanatory diagram regarding the prediction of the AC coefficient.
  • each functional block in this specification can be typically realized by hardware.
  • each functional block can be formed on a semiconductor substrate as part of an IC (integrated circuit).
  • the IC includes an LSI (Large-Scale Integrated Circuit), an ASIC (Application-Specific Integrated Circuit), a gate array, an FPGA (Field Programmable Gate Array), and the like.
  • some or all of each functional block can be implemented in software.
  • such a functional block can be realized by a program executed on a processor.
  • each functional block described in the present specification may be realized by hardware, may be realized by software, or may be realized by any combination of hardware and software.
  • FIG. 1 is a block diagram showing a configuration of an image decoding apparatus according to an embodiment of the present invention.
  • the image decoding apparatus in FIG. 1 is an image decoding apparatus that decodes an input bitstream IST having encoded data obtained by encoding a moving image by performing intra prediction, and includes a stream divider 110, The stream buffers 120, 121, 122, 123, the parameter decoder 132, the decoding timing controller 134, the reference information storage unit 136, the image decoding units 141, 142, 143, and the frame memory 152 are included. .
  • FIG. 2 is an explanatory diagram showing blocks included in the macro block in the case of the color format 4: 2: 0.
  • Each picture included in the moving image of the input bitstream IST is composed of a large number of macroblocks.
  • each macro block has luminance signal blocks Y0, Y1, Y2, and Y3, a blue color difference signal block Cb, and a red color difference signal block Cr.
  • the luminance signal blocks Y0 to Y3 are arranged in 2 rows and 2 columns in the macroblock.
  • the blocks Y0 to Y3, Cb, and Cr are all prediction units in the intra prediction.
  • the macroblock is, for example, H.264. H.264.
  • each macro block will be described as having encoded data corresponding to 16 ⁇ 16 pixels.
  • each of the blocks Y0 to Y3, Cb, and Cr has encoded data corresponding to 8 ⁇ 8 pixels.
  • the number of pixels corresponding to the macroblock is not limited to this, and may be 8 ⁇ 8 pixels, for example.
  • H.264 in order to improve the compression efficiency by utilizing the correlation between adjacent blocks in the screen, a compression encoding technique called intra prediction is introduced to improve the encoding efficiency.
  • FIG. 3 is an explanatory diagram illustrating an example of blocks referred to when the image decoding apparatus in FIG. 1 performs decoding.
  • intra prediction for example, at least one of intra prediction for predicting pixel values, motion vector prediction for predicting motion vectors, and DC / AC prediction for predicting DC components and AC components of DCT coefficients is performed. .
  • H The intra prediction according to H.264 will be described.
  • four blocks arranged on the left, upper left, upper, and upper right of this block can be referred to in the screen of the decoding target block.
  • An optimal prediction direction can be selected for each decoding target block.
  • blocks in different frames are referenced, but blocks in the same screen are not referenced.
  • FIG. 2 is an explanatory diagram illustrating an example of pixels referred to when decoding according to H.264.
  • H.264 intra 8 ⁇ 8 prediction pixel information adjacent to the target block is used as reference information as shown in FIG. 4 when the target block is decoded.
  • FIG. 5 is an explanatory diagram of bit stream division in the stream divider 110 of FIG.
  • the decoding processing operation below the macroblock layer by the image decoding apparatus of FIG. 1 will be described.
  • the stream divider 110 performs bit pattern analysis of the input bit stream IST, and divides the input bit stream IST into divided streams STP, STA, STB, and STC according to the analysis result. At this time, the stream divider 110 does not perform a decoding process for obtaining pixel data.
  • the stream divider 110 divides each macro block (MB) of the input bit stream IST so that encoded data of one or more blocks included in the macro block is included in each of the divided streams STA, STB, and STC. To do.
  • the stream divider 110 includes a macroblock header for the divided stream STP, encoded data of the luminance signal blocks Y0 and Y1 for the divided stream STA, and a luminance signal block Y2 for the divided stream STB.
  • the input bit stream IST is divided so that the encoded data of Y3 and the divided stream STC include the encoded data of the color difference signal blocks Cb and Cr.
  • the stream divider 110 outputs the divided streams STP, STA, STB, and STC to the stream buffers 120, 121, 122, and 123, respectively.
  • the stream buffers 120, 121, 122, and 123 store the divided streams STP, STA, STB, and STC, respectively. Therefore, the stream buffer 120 has encoded data indicating the encoding information of each macroblock, the stream buffer 121 has encoded data of blocks Y0 and Y1 of each macroblock, and the stream buffer 122 has blocks Y2 of each macroblock.
  • the encoded data of Y3 and the stream buffer 123 store the encoded data of blocks Cb and Cr of each macroblock.
  • the parameter decoder 132 reads the macroblock header MBH from the stream buffer 120 storing the divided stream STP and decodes it.
  • the parameter decoder 132 outputs the macroblock coding information MBI obtained by decoding to the image decoding unit 141, and outputs a completion signal EP indicating that decoding is complete to the decoding timing controller 134.
  • the decoding timing controller 134 outputs the activation signals SP, SA, SB, and SC to the parameter decoding unit 132 and the image decoding units 141 to 143, respectively, so that the parameter decoder 132 and the image decoding units 141 to 143 Controls the start timing of the decoding process.
  • the decoding timing controller 134 causes the image decoding unit for which an image of an adjacent block necessary for decoding processing has already been obtained among the image decoding units 141 to 143 to start processing.
  • the image decoding units 141 to 143 transfer data between the image decoding units 141 to 143 when notified by the activation signals SA, SB, and SC from the decoding timing controller 134 that processing should be started.
  • the transferred data includes macroblock coding information MBI.
  • intra prediction is performed.
  • the image decoding unit 141 is activated by the activation signal SA from the decoding timing controller 134, reads the encoded data CYA from the stream buffer 121 storing the divided stream STA, and stores the frame memory 152 and reference information as necessary.
  • the encoded data CYA is decoded while accessing the unit 136.
  • the image decoding unit 141 stores the decoded image DYA obtained by decoding in the frame memory 152, outputs a completion signal EA indicating that the decoding is completed to the decoding timing controller 134, and sets the macroblock coding information MBI as the macroblock coding information MBI.
  • the image is output to the image decoding unit 142.
  • the image decoding unit 142 is activated by the activation signal SB from the decoding timing controller 134, reads the encoded data CYB from the stream buffer 122 storing the divided stream STB, and stores the frame memory 152 and reference information as necessary.
  • the encoded data CYB is decoded while accessing the unit 136.
  • the image decoding unit 142 stores the decoded image DYB obtained by decoding in the frame memory 152, outputs a completion signal EB indicating that the decoding is completed to the decoding timing controller 134, and sets the macroblock coding information MBI.
  • the image is output to the image decoding unit 143.
  • the image decoding unit 143 is activated by the activation signal SC from the decoding timing controller 134, reads the encoded data CC from the stream buffer 123 storing the divided stream STC, and stores the frame memory 152 and reference information as necessary.
  • the encoded data CC is decoded while accessing the unit 136.
  • the image decoding unit 143 stores the decoded image DC obtained by decoding in the frame memory 152, and outputs a completion signal EC indicating that decoding is complete to the decoding timing controller 134.
  • the reference information storage unit 136 stores reference information necessary in the process of decoding the encoded data CYA, CYB, and CC in the image decoding units 141 to 143.
  • the stored reference information is, for example, an image (intra prediction pixel) or a predicted motion vector obtained as a result of decoding processing by the image decoding units 141 to 143.
  • the reference information may be an intermediate processing result (for example, an image before passing through the deblocking filter) in the image decoding units 141 to 143.
  • the frame memory 152 stores the decoded images DYA, DYB, and DC decoded by the image decoding units 141 to 143.
  • FIG. 6 is a timing chart showing an example of the operation of the image decoding apparatus in FIG. The processing for each period will be described in detail with reference to FIG.
  • the decoding timing controller 134 When the divided streams are stored in the stream buffers 120 to 123, the decoding timing controller 134 outputs an activation signal SP to the parameter decoder 132.
  • the parameter decoder 132 receives the activation signal SP, the parameter decoder 132 reads the macroblock header MBH from the stream buffer 120 and decodes it to obtain macroblock coding information of the macroblock # 0.
  • the parameter decoder 132 notifies the completion by outputting a completion signal EP to the decoding timing controller 134.
  • the decoding timing controller 134 Upon receipt of the completion signal EP, the decoding timing controller 134 recognizes the end of the macroblock processing period MI0 and outputs the activation signal SP to obtain the encoding information of the next macroblock # 1 and outputs the parameter decoder. 132 is started. Further, the decoding timing controller 134 outputs an activation signal SA to the image decoding unit 141 in order to perform decoding processing of the blocks Y0 and Y1 of the macroblock # 0.
  • the parameter decoder 132 When receiving the activation signal SP, the parameter decoder 132 reads and decodes the macroblock header MBH from the stream buffer 120, similarly to the period MI0, and obtains macroblock coding information of the macroblock # 1. The parameter decoder 132 notifies the completion by outputting a completion signal EP to the decoding timing controller 134.
  • the image decoding unit 141 Upon receiving the activation signal SA, the image decoding unit 141 receives the macroblock encoding information MBI of the macroblock # 0 necessary for the decoding process from the parameter decoder 132, and reads the encoded data CYA from the stream buffer 121. The image decoding unit 141 decodes the read encoded data using the macroblock encoding information MBI of the macroblock # 0, and outputs the obtained decoded images DYA of the blocks Y0 and Y1 to the frame memory 152. . When the decoding is completed, the image decoding unit 141 notifies the completion by outputting a completion signal EA to the decoding timing controller 134.
  • the image decoding unit 141 stores, in the reference information storage unit 136, reference portions that are necessary for decoding the blocks Y2 and Y3 of the macroblock # 0. Store.
  • the decoding timing controller 134 Upon receipt of the completion signals EP and EA, the decoding timing controller 134 recognizes the end of the macroblock processing period MI1 and outputs the activation signal SP to obtain the encoding information of the next macroblock # 2 and outputs the parameter The decoder 132 is activated. Further, the decoding timing controller 134 outputs an activation signal SA to the image decoding unit 141 in order to perform the decoding process of the blocks Y0 and Y1 of the macroblock # 1.
  • the decoding timing controller 134 outputs an activation signal SB to the image decoding unit 142 in order to perform the decoding processing of the blocks Y2 and Y3 of the macroblock # 0.
  • parameter decoder 132 receives activation signal SP, parameter decoder 132 obtains macroblock encoding information of macroblock # 2 in the same manner as in period MI0.
  • the image decoding unit 141 performs the same operation as in the period MI1 except that the processing is performed on the macroblock # 1 instead of the macroblock # 0.
  • the image decoding unit 141 stores, in the reference information storage unit 136, reference portions that are necessary for decoding processing of the blocks Y2 and Y3 of the macroblock # 1. Store.
  • FIG. 7 is an explanatory diagram illustrating an example of pixels referred to by the image decoding unit 142 in FIG. 1 that decodes the blocks Y2 and Y3.
  • each macroblock has four blocks Y0, Y1, Y2, and Y3 as shown in FIG. Focusing on the information necessary for the image decoding unit 142, when the blocks Y2 and Y3 are decoded, information of pixels adjacent to the blocks Y2 and Y3 is used as reference information as shown in FIG.
  • These pixels are (1) Blocks Y0 and Y1 belonging to the same macroblock as the blocks Y2 and Y3, (2) Block Y1 of the left adjacent macroblock, and (3) Block Y3 of the left adjacent macroblock Included.
  • (1) and (2) are stored in the reference information storage unit 136 by the image decoding unit 141 as a decoding processing result.
  • (1) and (2) are stored before the image decoding unit 142 processes the blocks Y2 and Y3.
  • the image decoding unit 142 reads (1) and (2) from the reference information storage unit 136 and uses them.
  • (3) is a block processed by the image decoding unit 142, and is a decoding result of the macroblock processed before processing the blocks Y2 and Y3. Therefore, the image decoding unit 142 sets the reference information storage unit 136 to (3) can be used without going through.
  • the image decoding unit 142 When receiving the activation signal SB, the image decoding unit 142 receives the macroblock encoding information MBI of the macroblock # 0 necessary for the decoding process from the image decoding unit 141, reads out the encoded data CYB from the stream buffer 122, and is read out. The encoded data is decoded to obtain decoded images of blocks Y2 and Y3. The decoded image data of the blocks Y0 and Y1 of the macroblock # 0 that need to be referenced in the intra prediction process is stored in the reference information storage unit 136 as reference information by the image decoding unit 141 in the period MI1. In decoding, the image decoding unit 142 reads the decoded images of the blocks Y0 and Y1 of the macroblock # 0 and other reference information and performs processing.
  • the image decoding unit 142 outputs the obtained decoded images DYB of the blocks Y2 and Y3 to the frame memory 152.
  • the image decoding unit 142 notifies the completion by outputting a completion signal EB to the decoding timing controller 134.
  • the decoding timing controller 134 Upon receiving the completion signals EP, EA, and EB, the decoding timing controller 134 recognizes the end of the macroblock processing period MI2 and outputs the activation signal SP to obtain the encoded information of the next macroblock # 3. Then, the parameter decoder 132 is activated. In addition, the decoding timing controller 134 outputs an activation signal SA to the image decoding unit 141 in order to perform decoding processing of the blocks Y0 and Y1 of the macroblock # 2.
  • the decoding timing controller 134 outputs an activation signal SB to the image decoding unit 142 in order to perform decoding processing of the blocks Y2 and Y3 of the macroblock # 1. Further, the decoding timing controller 134 outputs an activation signal SC to the image decoding unit 143 in order to perform the decoding process of the blocks Cb and Cr of the macroblock # 0.
  • parameter decoder 132 receives activation signal SP, parameter decoder 132 obtains macroblock encoding information of macroblock # 3 in the same manner as in period MI0.
  • the image decoding unit 141 performs the same operation as in the period MI1 except that the processing is performed on the macroblock # 2 instead of the macroblock # 0.
  • the image decoding unit 141 stores, in the reference information storage unit 136, reference portions that are necessary for decoding the blocks Y2 and Y3 of the macroblock # 2.
  • the image decoding unit 142 performs the same operation as in the period MI2 except that the processing is performed on the macroblock # 1 instead of the macroblock # 0.
  • the image decoding unit 143 When receiving the activation signal SC, the image decoding unit 143 receives the macroblock encoding information MBI of the macroblock # 0 necessary for the decoding process from the image decoding unit 142, reads out the encoded data CC from the stream buffer 123, and is read out. The encoded data is decoded to obtain decoded images of the blocks Cb and Cr. The image decoding unit 143 outputs the obtained decoded images DC of the blocks Cb and Cr to the frame memory 152. When the decoding is completed, the image decoding unit 143 notifies the completion by outputting a completion signal EC to the decoding timing controller 134.
  • ⁇ Macro block processing period MI4> Upon receiving the completion signals EP, EA, EB, and EC, the decoding timing controller 134 recognizes the end of the macroblock processing period MI3 and outputs the activation signals SP, SA, SB, and SC. Each of the image decoding units 141, 142, and 143 performs the same processing as in the period MI3, except that the next macroblock is processed.
  • the same processing as that in the period MI3 is repeated except that the macroblock to be processed is changed to a subsequent macroblock for each period.
  • the parameter decoder 132 and the image decoding units 141 to 143 perform processing related to macroblocks in a pipeline manner.
  • the image decoding units 141 to 143 receive Coded_Block_Pattern or skip information as one of the parameters to determine whether the encoded data of each block is included in the divided stream, and indicate the corresponding block of Coded_Block_Pattern When the bit is 0, at least the variable length decoding process is not performed.
  • the reference information storage unit 136 has at least two areas, and the image decoding units 141 to 143 alternately write to the two areas of the reference information storage unit 136 each time a new macroblock is processed. May be.
  • the image decoding units 141 to 143 write the processing results of the macro blocks # 0, # 2, # 4,... Into the first area of the reference information storage unit 136, and the macro blocks # 1, # 3, # 5, Are written in the second area of the reference information storage unit 136.
  • the case where the stream divider 110 divides the input bitstream IST so that each of the divided streams STA, STB, and STC includes two blocks of a certain macroblock has been described.
  • the input bitstream IST may be divided so that a block of a certain macroblock is included one by one or three or more.
  • a stream buffer and an image decoding unit corresponding to each of the divided streams are used.
  • the macroblock can be used regardless of the size of slices constituting the picture. Can be divided. For this reason, even if the picture is composed of any slice, an efficient parallel decoding process can be realized. For example, parallel processing can be performed without any problem even when a picture is composed of one slice or when a picture is composed of a plurality of slices but there is an extreme bias in the size of each slice. it can.
  • the image decoding unit refers to the decoding results of other image decoding units as reference information used for intra-screen prediction, and a plurality of image decoding units perform processing in synchronism in units of macroblocks. Decoding processing is possible. Since the encoded data of each macroblock is equally divided into three, the processing load in the three image decoding units 141 to 143 can be made almost equal.
  • a parallel decoding process can be performed on a bitstream compliant with an image coding standard such as H.264 with low power consumption and low cost.
  • the image decoding units 141 to 143 are pipelined. However, since the image decoding unit 143 that processes the blocks Cb and Cr does not need to use the decoding results of the image decoding units 141 and 142, the image decoding unit 143 performs processing of the same macroblock simultaneously with the image decoding unit 141 or 142. You may make it perform.
  • the image decoding units 141 and 142 that decode the luminance signal block and the image decoding unit 143 that decodes the chrominance signal block may be configured in the same manner, and the image decoding units 141 and 142 perform the decoding process of the luminance signal.
  • the image decoding unit 143 may have a configuration specialized for color difference signal decoding processing.
  • FIG. 8 is a block diagram illustrating a configuration example of the image decoding unit 141 in FIG.
  • the image decoding unit 141 includes a variable length decoding unit 161, an inverse quantization unit 162, an inverse transform unit 163, a motion compensation unit 164, an intra prediction unit 165, and a deblocking filter 166.
  • the image decoding units 142 and 143 in FIG. 1 are configured similarly to the image decoding unit 141.
  • the image decoding units 141 to 143 can operate as follows.
  • FIG. 9 is a timing chart showing an example of the operation of the image decoding unit 141 in FIG.
  • the variable length decoding unit 161 performs processing on the macroblocks # 0, # 1, # 2, # 3, # 4,... In the periods NI0, NI1, NI2, NI3, NI4,. To the conversion unit 162.
  • the processing for each macroblock includes the processing for the six blocks Y0 to Y3, Cb and Cr in FIG.
  • the inverse quantization unit 162 performs processing on the processing results performed by the variable length decoding unit 161 during the periods NI0, NI1, NI2, NI3,... During the periods NI1, NI2, NI3, NI4,. Is output to the inverse transform unit 163.
  • the inverse transform unit 163 performs processing on the processing results performed by the inverse quantization unit 162 in the periods NI1, NI2, NI3,... In the periods NI2, NI3, NI4,. And output to the intra prediction unit 165.
  • the motion compensation unit 164 and the intra prediction unit 165 respectively process the processing results performed by the inverse transform unit 163 in the periods NI2, NI3,. Output to.
  • the deblocking filter 166 performs processing on the processing results performed by the motion compensation unit 164 and the intra prediction unit 165 in the periods NI3, NI4,.
  • the image decoding unit 141 performs pipeline processing.
  • the image decoding units 142 and 143 also operate in the same manner as in FIG.
  • FIG. 10 is a timing chart specifically showing an example of the internal operation of the image decoding units 141 and 142 in FIG. 1 for processing the luminance signal.
  • the variable length decoding unit 161 of the image decoding unit 141 reads the encoded data CYA from the stream buffer 121, performs variable length decoding, and performs inverse quantization on the decoding results of the obtained blocks Y0 and Y1 of the macroblock # 0. To the conversion unit 162.
  • variable length decoding unit 161 reads the encoded data CYA from the stream buffer 121, performs variable length decoding, and outputs the obtained decoding results of the blocks Y0 and Y1 of the macroblock # 1 to the inverse quantization unit 162. To do.
  • the inverse quantization unit 162 performs inverse quantization on the decoding result of the macroblock # 0 obtained by the variable length decoding unit 161, and outputs the result to the inverse conversion unit 163.
  • variable length decoding unit 161 reads the encoded data CYA from the stream buffer 121, performs variable length decoding, and outputs the obtained decoding results of the blocks Y0 and Y1 of the macroblock # 2 to the inverse quantization unit 162.
  • the inverse quantization unit 162 performs inverse quantization on the decoding result of the macroblock # 1 obtained by the variable length decoding unit 161, and outputs the result to the inverse transform unit 163.
  • the inverse transform unit 163 performs inverse orthogonal transform on the processing result of the macroblock # 0 obtained by the inverse quantization unit 162, and outputs the result to the motion compensation unit 164 and the intra prediction unit 165.
  • variable length decoding unit 161 reads the encoded data CYA from the stream buffer 121, performs variable length decoding, and outputs the obtained decoding results of the blocks Y0 and Y1 of the macroblock # 3 to the inverse quantization unit 162.
  • the inverse quantization unit 162 performs inverse quantization on the decoding result of the macroblock # 2 obtained by the variable length decoding unit 161, and outputs the result to the inverse transform unit 163.
  • the inverse transform unit 163 performs inverse orthogonal transform on the processing result of the macroblock # 1 obtained by the inverse quantization unit 162, and outputs the result to the motion compensation unit 164 and the intra prediction unit 165.
  • the motion compensation unit 164 and the intra prediction unit 165 perform motion compensation and intra prediction on the processing result of the macroblock # 0 obtained by the inverse transform unit 163, and output the result to the deblocking filter 166.
  • variable length decoding unit 161 reads the encoded data CYA from the stream buffer 121, performs variable length decoding, and outputs the obtained decoding results of the blocks Y0 and Y1 of the macroblock # 4 to the inverse quantization unit 162. To do.
  • the inverse quantization unit 162 performs inverse quantization on the decoding result of the macroblock # 3 obtained by the variable length decoding unit 161, and outputs the result to the inverse transform unit 163.
  • the inverse transform unit 163 performs inverse orthogonal transform on the processing result of the macroblock # 2 obtained by the inverse quantization unit 162, and outputs the result to the motion compensation unit 164 and the intra prediction unit 165.
  • the motion compensation unit 164 and the intra prediction unit 165 perform motion compensation and intra prediction on the processing result of the macroblock # 1 obtained by the inverse transform unit 163, and output the result to the deblocking filter 166.
  • the deblocking filter 166 performs a deblocking process on the processing result of the macroblock # 0 obtained by the motion compensation unit 164 and the intra prediction unit 165, and outputs the result as a decoding result DYA.
  • variable length decoding unit, the inverse quantization unit, the inverse transform unit, the motion compensation unit, the intra prediction unit, and the deblocking filter of the image decoding unit 142 are also connected to the image decoding unit 141 for the blocks Y2 and Y3 of each macroblock. The same processing is performed. However, the processing of the image decoding unit 142 starts from the period NJ1.
  • the length of each stage is shorter than when processing is performed as shown in FIG. Can do.
  • FIG. 11 is a block diagram showing a configuration of a first modification of the image decoding apparatus in FIG.
  • the image decoding apparatus in FIG. 11 includes stream buffers 223 and 224 instead of the stream buffer 123, and image decoding sections 243 and 244 in place of the image decoding section 143. Is different.
  • FIG. 12 is an explanatory diagram showing blocks included in the macro block in the case of the color format 4: 2: 2.
  • Each picture included in the moving image of the input bitstream IST is composed of a large number of macroblocks.
  • each macroblock has luminance signal blocks Y0, Y1, Y2, and Y3, blue color difference signal blocks Cb0 and Cb1, and red color difference signal blocks Cr0 and Cr1.
  • the luminance signal blocks Y0 to Y3 are arranged in 2 rows and 2 columns in the macroblock.
  • the blue color difference signal blocks Cb0 and Cb1 are arranged in 2 rows and 1 column in the macroblock.
  • the red color difference signal blocks Cr0 and Cr1 are arranged in 2 rows and 1 column in the macroblock.
  • the blocks Y0 to Y3, Cb0, Cb1, Cr0, and Cr1 are all prediction units in the intra prediction.
  • the blocks Y0 to Y3, Cb0, Cb1, Cr0, and Cr1 each have encoded data corresponding to 8 ⁇ 8 pixels.
  • the number of pixels corresponding to the macroblock is not limited to this, and may be 8 ⁇ 8 pixels, for example.
  • FIG. 13 is an explanatory diagram of bit stream division in the stream divider 210 of FIG.
  • the decoding processing operation below the macroblock layer by the image decoding apparatus in FIG. 11 will be described.
  • the stream divider 210 performs bit pattern analysis of the input bit stream IST, and divides the input bit stream IST into divided streams STP, STA, STB, STC, STD according to the analysis result. At this time, the stream divider 210 does not perform a decoding process for obtaining pixel data.
  • the stream divider 210 converts each macroblock of the input bitstream IST so that encoded data corresponding to one or more blocks included in the macroblock is included in each of the divided streams STA, STB, STC, STD. To divide.
  • the stream divider 210 has a macroblock header for the divided stream STP, encoded data of the luminance signal blocks Y0 and Y1 for the divided stream STA, and a luminance signal block Y2 for the divided stream STB.
  • the input bit stream IST is divided so that the encoded data of Y3, the divided stream STC includes the encoded data of the color difference signal blocks Cb0 and Cr0, and the divided stream STD includes the encoded data of the color difference signal blocks Cb1 and Cr1. .
  • the stream divider 210 outputs the divided streams STP, STA, STB, STC, STD to the stream buffers 120, 121, 122, 223, 224, respectively.
  • the stream buffers 120, 121, 122, 223, and 224 store the divided streams STP, STA, STB, STC, and STD, respectively. Therefore, the stream buffer 120 has encoded data indicating the encoding information of each macroblock, the stream buffer 121 has encoded data of blocks Y0 and Y1 of each macroblock, and the stream buffer 122 has blocks Y2 of each macroblock.
  • the encoded data of Y3, the stream buffer 223, the encoded data of blocks Cb0 and Cr0 of each macroblock, and the stream buffer 224 store the encoded data of blocks Cb1 and Cr1 of each macroblock.
  • FIG. 14 is a timing chart showing an example of the operation of the image decoding apparatus in FIG. The processing for each period will be described in detail with reference to FIG.
  • the macro block processing periods MI0 to MI2 are the same as those described with reference to FIG.
  • the decoding timing controller 234 Upon receiving the completion signals EP, EA, and EB, the decoding timing controller 234 recognizes the end of the macroblock processing period MI2 and outputs the activation signal SP to obtain the encoding information of the next macroblock # 3. Then, the parameter decoder 132 is activated. In addition, the decoding timing controller 234 outputs an activation signal SA to the image decoding unit 141 in order to perform decoding processing of the blocks Y0 and Y1 of the macroblock # 2.
  • the decoding timing controller 234 outputs an activation signal SB to the image decoding unit 142 in order to perform the decoding process of the blocks Y2 and Y3 of the macroblock # 1. Further, the decoding timing controller 234 outputs an activation signal SC to the image decoding unit 243 in order to perform the decoding process of the blocks Cb0 and Cr0 of the macroblock # 0.
  • parameter decoder 132 receives activation signal SP, parameter decoder 132 obtains macroblock encoding information of macroblock # 3 in the same manner as in period MI0.
  • the image decoding units 141 and 142 are the same as those in FIG.
  • the image decoding unit 243 Upon receiving the activation signal SC, the image decoding unit 243 receives the macroblock encoding information MBI of the macroblock # 0 necessary for the decoding process from the image decoding unit 142, reads out the encoded data CC0 from the stream buffer 223, and decodes it. Decoded images of blocks Cb0 and Cr0 of macroblock # 0 are obtained. The image decoding unit 243 outputs the obtained decoded image DC0 of the blocks Cb0 and Cr0 to the frame memory 252. When the decoding is completed, the image decoding unit 243 notifies the completion by outputting a completion signal EC to the decoding timing controller 234. Of the obtained decoded images of the blocks Cb0 and Cr0 of the macroblock # 0, the image decoding unit 243 stores in the reference information storage unit 236, as reference information, portions necessary for decoding the blocks Cb1 and Cr1 of the macroblock # 0. Store.
  • ⁇ Macro block processing period MI4> When receiving the completion signals EP, EA, EB, and EC, the decoding timing controller 234 recognizes the end of the macroblock processing period MI3 and outputs the activation signals SP, SA, SB, and SC. Each of the image decoding units 141, 142, and 243 performs the same processing as in the period MI3, except that the next macroblock is processed.
  • the decoding timing controller 234 outputs an activation signal SD to the image decoding unit 243 in order to perform the decoding processing of the blocks Cb1 and Cr1 of the macroblock # 0.
  • parameter decoder 132 receives activation signal SP, parameter decoder 132 obtains macroblock coding information of macroblock # 4 in the same manner as in period MI0.
  • the image decoding unit 244 Upon receiving the activation signal SD, the image decoding unit 244 receives the macroblock encoding information MBI of the macroblock # 0 necessary for the decoding process from the image decoding unit 243, reads out the encoded data CC1 from the stream buffer 224, decodes it, Decoded images of the blocks Cb1 and Cr1 of the macroblock # 0 are obtained.
  • the decoded image data of the blocks Cb0 and Cr0 of the macroblock # 0 that need to be referred to in the intra prediction process is stored in the reference information storage unit 236 as reference information in the period MI3.
  • the image decoding unit 244 reads and processes the decoded images of the blocks Cb0 and Cr0 of the macroblock # 0 and other reference information.
  • the image decoding unit 244 outputs the obtained decoded image DC1 of the blocks Cb1 and Cr1 to the frame memory 252. When the decoding is completed, the image decoding unit 244 notifies the completion by outputting a completion signal ED to the decoding timing controller 234.
  • ⁇ Macro block processing period MI5> When receiving the completion signals EP, EA, EB, EC, and ED, the decoding timing controller 234 recognizes the end of the macroblock processing period MI4 and outputs the activation signals SP, SA, SB, SC, and SD. Each of the image decoding units 141, 142, 243, and 244 performs the same processing as in the period MI4 except that the next macroblock is processed.
  • the same processing as that in the period MI4 is repeated except that the macroblock to be processed is changed to a subsequent macroblock for each period.
  • the parameter decoder 132 and the image decoding units 141, 142, 243, and 244 perform processing related to macroblocks in a pipeline manner.
  • the image decoding unit refers to the decoding results of other image decoding units as reference information used for intra prediction, and the plurality of image decoding units are in units of macroblocks. Since the processes are performed in synchronization with each other, parallel decoding processing of the divided streams is possible. Since the encoded data of each macroblock is equally divided into four, the processing load in the four image decoding units 141, 142, 243, and 244 can be substantially equalized.
  • the image decoding unit 243 performs the same macroblock processing as the image decoding unit 141, and the image decoding unit 244 The same macroblock processing may be performed simultaneously with the decoding unit 142.
  • FIG. 15 is a block diagram showing a configuration of a second modification of the image decoding device of FIG.
  • the image decoding apparatus in FIG. 15 includes stream buffers 323, 324, 325, and 326 instead of the stream buffer 123, and image decoding units 343, 344, 345, and 346 instead of the image decoding unit 143.
  • FIG. 16 is an explanatory diagram showing blocks included in the macro block in the case of the color format 4: 4: 4.
  • Each picture included in the moving image of the input bitstream IST is composed of a large number of macroblocks.
  • each macro block has luminance signal blocks Y0, Y1, Y2, and Y3, blue color difference signal blocks Cb0, Cb1, Cb2, and Cb3, and red color difference signal blocks Cr0, Cr1, Cr2, and Cr3.
  • the luminance signal blocks Y0 to Y3 are arranged in 2 rows and 2 columns in the macroblock.
  • the blue color difference signal blocks Cb0 to Cb3 are arranged in 2 rows and 2 columns in the macroblock.
  • the red color difference signal blocks Cr0 to Cr3 are arranged in 2 rows and 2 columns in the macro block.
  • the blocks Y0 to Y3, Cb0 to Cb3, and Cr0 to Cr3 are all prediction units in intra prediction.
  • the blocks Y0 to Y3, Cb0 to Cb3, and Cr0 to Cr3 each have encoded data corresponding to 8 ⁇ 8 pixels.
  • the number of pixels corresponding to the macroblock is not limited to this, and may be 8 ⁇ 8 pixels, for example.
  • the stream divider 310 performs bit pattern analysis of the input bit stream IST, and divides the input bit stream IST into divided streams STP, STA, STB, STC, STD, STE, and STF according to the analysis result. At this time, the stream divider 310 does not perform a decoding process for obtaining pixel data.
  • the stream divider 310 includes, in each of the divided streams STA, STB, STC, STD, STE, and STF, each macroblock of the input bitstream IST, and encoded data corresponding to one or more blocks included in the macroblock. Divide as you can.
  • the stream divider 310 includes a macroblock header for the divided stream STP, encoded data of the luminance signal blocks Y0 and Y1 for the divided stream STA, and encoded data of the luminance signal blocks Y2 and Y3 for the divided stream STB,
  • the divided stream STC is encoded data of the color difference signal blocks Cb0 and Cb1
  • the divided stream STD is encoded data of the color difference signal blocks Cb2 and Cr3
  • the divided stream STE is encoded data of the color difference signal blocks Cr0 and Cr1
  • the divided stream The input bit stream IST is divided so that the STF includes encoded data of the color difference signal blocks Cr2 and Cr3.
  • the stream divider 310 outputs the divided streams STP, STA, STB, STC, STD, STE, and STF to the stream buffers 120, 121, 122, 323, 324, 325, and 326, respectively.
  • the stream buffers 120 to 122, 323 to 326 store the divided streams STP, STA, STB, STC, STD, STE, and STF, respectively.
  • the decoding timing controller 334 outputs start signals SC, SD, SE, and SF to the image decoding units 343 to 346, respectively, thereby controlling the start timing of decoding processing of the image decoding units 343 to 346.
  • the configuration is substantially the same as the decoding timing controller 134 of FIG.
  • the image decoding units 141 and 142 are the same as in the case of FIG.
  • the image decoding unit 343 is activated by the activation signal SC from the decoding timing controller 334, reads the encoded data CCA from the stream buffer 323 storing the divided stream STC, and stores the frame memory 352 and reference information as necessary.
  • the encoded data CCA is decoded while accessing the unit 336.
  • the image decoding unit 343 stores the decoded image DCA obtained by decoding in the frame memory 352, outputs a completion signal EC indicating completion of decoding to the decoding timing controller 334, and sets the macroblock encoding information MBI.
  • the image is output to the image decoding unit 344.
  • the image decoding unit 344 is activated by the activation signal SD from the decoding timing controller 334, reads the encoded data CCB from the stream buffer 324 storing the divided stream STD, and stores the frame memory 352 and reference information as necessary.
  • the encoded data CCB is decoded while accessing the unit 336.
  • the image decoding unit 344 stores the decoded image DCB obtained by decoding in the frame memory 352, outputs a completion signal ED indicating that the decoding is completed to the decoding timing controller 334, and sets the macroblock coding information MBI.
  • the image is output to the image decoding unit 345.
  • the image decoding unit 345 is activated by the activation signal SE from the decoding timing controller 334, reads the encoded data CCC from the stream buffer 325 storing the divided stream STE, and stores the frame memory 352 and reference information as necessary.
  • the encoded data CCC is decoded while accessing the unit 336.
  • the image decoding unit 345 stores the decoded image DCC obtained by decoding in the frame memory 352, outputs a completion signal EE indicating that the decoding is completed to the decoding timing controller 334, and sets the macroblock coding information MBI.
  • the image is output to the image decoding unit 346.
  • the image decoding unit 346 is activated by the activation signal SF from the decoding timing controller 334, reads the encoded data CCD from the stream buffer 326 storing the divided stream STF, and stores the frame memory 352 and reference information as necessary.
  • the encoded data CCD is decoded while accessing the unit 336.
  • the image decoding unit 346 stores the decoded image DCD obtained by decoding in the frame memory 352, and outputs a completion signal EF indicating that the decoding is completed to the decoding timing controller 334.
  • the image decoding units 343 to 346 do not need to use the decoding results of the image decoding units 141 and 142, the image decoding units 343 and 345 perform the same macroblock processing simultaneously with the image decoding unit 141, and the image decoding units 344 and 346 The same macroblock processing can be performed simultaneously with the image decoding unit 142.
  • the image decoding unit refers to the decoding results of other image decoding units as reference information used for intra prediction, and a plurality of image decoding units perform processing in synchronization with each macroblock. Therefore, parallel decoding processing of the divided streams is possible. Since the encoded data of each macroblock is equally divided into six, the processing load in the six image decoding units 141, 142, 343 to 346 can be made almost equal.
  • FIG. 17 is a block diagram showing the configuration of the third modification of the image decoding apparatus in FIG.
  • the image decoding apparatus in FIG. 17 is different from the image decoding apparatus in FIG. 1 in that it further includes an image output unit 454.
  • the image output unit 454 stores the images decoded by the image decoding units 141 to 143, and the decoded images for all the blocks (here, the blocks Y0 to Y3, Cb, and Cr) included in one macroblock. Is stored, the decoded image for that macroblock is output.
  • FIG. 18 is a timing chart showing an example of the operation of the image decoding apparatus in FIG. The processing for each period will be described in detail with reference to FIG.
  • the image decoding unit 141 outputs the decoded images DYA of the blocks Y0 and Y1 obtained by decoding not to the frame memory 452 but to the image output unit 454.
  • the image output unit 454 stores the decoded image DYA. The same applies to the following periods. Other points are the same as in the case of FIG.
  • the image decoding unit 142 outputs the decoded images DYB of the blocks Y2 and Y3 obtained by decoding to the image output unit 454 instead of the frame memory 452.
  • the image decoding unit 143 outputs the decoded images DC of the blocks Cb and Cr obtained by decoding to the image output unit 454 instead of the frame memory 452.
  • ⁇ Macro block processing period MI4> When the decoded images for all the blocks included in the macroblock # 0 are stored in the image output unit 454, the decoding timing controller 434 receives the completion signals EP, EA, EB, and EC. Then, the decoding timing controller 434 recognizes the end of the macroblock processing period MI3 and outputs activation signals SP, SA, SB, SC, and SO.
  • the image output unit 454 When receiving the activation signal SO, the image output unit 454 receives the macroblock encoding information MBI of the macroblock # 0 necessary for the decoding process from the image decoding unit 143, and the decoded image DMB of all the blocks included in the macroblock # 0. Are output to the frame memory 452 in units of one macroblock.
  • the frame memory 452 stores the decoded image DMB.
  • the image output unit 454 When the output is completed, the image output unit 454 notifies the completion by outputting a completion signal EO to the decoding timing controller 434. Thereafter, the image output unit 454 stores the decoded images DYA, DYB, and DC decoded by the image decoding units 141 to 143.
  • the same processing as that in the period MI4 is repeated except that the macroblock to be processed is changed to a subsequent macroblock for each period.
  • the image decoding apparatus of FIG. 17 has the image output unit 454 that collectively outputs the decoded images of the image decoding units 141 to 143 that perform decoding processing in parallel, so that data of one macroblock can be transferred collectively. become. Since a plurality of transfers with a relatively small amount of data to be transferred are combined into one transfer, overhead during the transfer can be reduced and an increase in required bandwidth can be suppressed.
  • FIG. 19 is an explanatory diagram illustrating an example of blocks referred to in motion vector prediction.
  • FIG. 19 is an explanatory diagram illustrating an example of blocks referred to in motion vector prediction.
  • three blocks arranged on the left, upper, and upper right of this block can be referred to in the screen of the decoding target block.
  • the block arranged in the upper left is referred to (see FIG. 3).
  • the image decoding units 141 to 143 and the like are based on the reference information stored in the reference information storage unit 136, for example, the motion vector MVA of the block NA, the motion vector MVB of the block NB, and the motion vector MVC of the block NC.
  • Motion vector MVT is obtained, and the obtained motion vector MVT is output to the reference information storage unit 136, the frame memory 152, and the like.
  • the reference information storage unit 136 stores a motion vector MVT as reference information for motion vector prediction of other blocks.
  • FIG. 20 is an explanatory diagram illustrating an example of blocks referred to in the DC / AC prediction.
  • FIG. 20 is an explanatory diagram illustrating an example of blocks referred to in the DC / AC prediction.
  • three blocks arranged on the left, top, and top left of this block can be referred to in the screen of the decoding target block (see FIG. 20).
  • FIG. 21 (a) is an explanatory diagram of DC prediction.
  • the DCT coefficient DCA of the block NA and the DCT coefficient DCB of the block NB are DC components.
  • the image decoding units 141 to 143 and the like use the DCT coefficient DCA or DCB as the corresponding DCT coefficient (DC component) of the decoding target block.
  • FIG. 21B is an explanatory diagram of AC prediction.
  • the DCT coefficient ACA in the leftmost column of the block NA and the DCT coefficient ACB in the uppermost row of the block NB are AC components.
  • the image decoding units 141 to 143 and the like use the DCT coefficient ACA as the DCT coefficient of the corresponding column of the decoding target block or the DCT coefficient ACB as the DCT coefficient of the corresponding row of the decoding target block.
  • the reference information storage unit 136 stores the DCT coefficients of the decoding target block as reference information for DC / AC prediction of other blocks.
  • the macroblock includes the luminance signal blocks Y0 to Y3 and the color difference signal blocks (Cb, Cr, etc.) has been described as an example.
  • the macroblock has R (red) G (green) B ( a block of signals representing blue), or a block of signals representing H (hue) S (saturation) V (value).
  • each macroblock is divided using two blocks (for example, blocks Y0 and Y1, blocks Y2 and Y3, or blocks Cb and Cr) as a division unit. It may be one or more sub-blocks included in the block. When one macroblock is composed of more than four blocks, each macroblock may be divided using three or more blocks as a division unit. For example, when a macroblock is composed of 16 blocks (or 16 subblocks), each macroblock may be divided into 4 blocks (or 4 subblocks).
  • each block has, for example, 16 ⁇ 8 pixels, 8 ⁇ 8 pixels It may have encoded data corresponding to 16 pixels, 8 ⁇ 4 pixels, 4 ⁇ 8 pixels, or 4 ⁇ 4 pixels.
  • a macroblock can be divided regardless of the size of a slice constituting a picture. Therefore, the present invention is useful for an image decoding device or the like.
  • the present invention is further useful as an optical disk reproducing device and recording device, a digital television receiving device, a movie device, a mobile phone, and the like.

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)

Abstract

 ピクチャを構成するスライスのサイズに関係なく、復号処理を並列に行う。画面内予測を行って動画像を符号化することによって得られた符号化データを有する入力ビットストリームを処理する画像復号装置であって、前記入力ビットストリームを複数の分割ストリームに分割するストリーム分割器と、前記複数の分割ストリームをそれぞれ復号する複数の画像復号部とを有する。前記ストリーム分割器は、前記動画像のマクロブロックに含まれる前記画面内予測における複数の予測単位のうちの1つ以上の予測単位に対応する符号化データが前記複数の分割ストリームのそれぞれに含まれるように、前記入力ビットストリームを分割する。

Description

画像復号装置
 本開示は、符号化されたビットストリームを復号する画像復号装置に関する。
 近年、デジタル画像伝送技術や撮像技術の進歩に伴い、高精細テレビジョン(HDTV)放送、高精細(HD)画像記録の普及が本格化してきている。また、更なる高画質化・高精細化のために、画像サイズ3840×2160画素の動画像や、カラーフォーマット4:2:2又は4:4:4の動画像の需要が高まりつつある。このような高画質化・高精細化された動画像の圧縮データを復号する際には、単純に画素数比を考えると、これまでのHD画像(1920×1080画素)に比べ4~8倍の量のデータを処理する必要があり、膨大な演算能力を備えた画像復号装置が必要となる。このため、単一の画像復号装置で処理することはコスト的にも、消費電力の面でも実用的ではなくなってきている。
 これを解決するための方法として、画像復号装置を複数個用いてピクチャ内の複数のスライスの復号処理を並列に行うことにより処理を高速化する装置が、特許文献1に開示されている。MPEG2(Moving Picture Experts Group 2)では、1つの画像(ピクチャ)は1つ以上のスライスで構成され、1つのスライスは1マクロブロックライン以下で構成される。例えばHD画像(1920×1080画素)では、ピクチャ内には必ず68個以上のスライスが存在しており、特許文献1の装置を用いれば、複数のスライスを並列処理することによって処理を高速化することができる。
特開2001-218201号公報
 しかしながら、現在、主流となりつつあるITU-T(International Telecommunication Union-Telecommunication Sector) H.264やVC-1といった高効率画像符号化規格では、MPEG2とは異なり、1ピクチャを1スライスで構成することも許容されている。スライスの大きさについてもMPEG2に比べて柔軟に規定されており、スライスは1以上の任意の数のマクロブロックを含むことができる。複数のスライスが存在する場合には、各スライスの大きさは一定でなくてもよい。
 特許文献1の装置は、スライスを単位として分割されたビットストリームに対して並列に復号処理を行うが、例えばピクチャが1つのスライスで構成されている場合には、この装置では並列処理をすることができない。また、ピクチャが複数のスライスで構成されていたとしても、スライスの大きさが均一ではない場合、例えば、ピクチャを構成するマクロブロックの80%が1つの特定のスライスに含まれており、残りのスライスにはわずかな数のマクロブロックしか存在していない場合には、この特定スライスの復号処理時間が支配的になる。このため、並列動作のために複数の復号部を有していても、その個数に見合う処理の高速化ができるとは限らない。
 本発明は、ピクチャを構成するスライスのサイズに関係なく、復号処理を並列に行う画像復号装置を提供することを目的とする。
 本発明の実施形態に係る画像復号装置は、画面内予測を行って動画像を符号化することによって得られた符号化データを有する入力ビットストリームを処理する画像復号装置であって、前記入力ビットストリームを複数の分割ストリームに分割するストリーム分割器と、前記複数の分割ストリームをそれぞれ復号する複数の画像復号部とを有する。前記ストリーム分割器は、前記動画像のマクロブロックに含まれる前記画面内予測における複数の予測単位のうちの1つ以上の予測単位に対応する符号化データが前記複数の分割ストリームのそれぞれに含まれるように、前記入力ビットストリームを分割する。
 これによると、マクロブロックを、そのマクロブロックに含まれる1つ以上の予測単位(例えばブロック)を単位として分割するので、ピクチャを構成するスライスの大きさに関係なく、マクロブロックを分割することができる。このため、ピクチャを構成するスライスの大きさにかかわらず、効率的な並列復号処理を行うことができる。
 本発明によれば、ピクチャを構成するスライスのサイズに関係なく、マクロブロックを分割することができる。このため、効率的な並列復号処理を実現することができる。特に、スライスのサイズに制約がない場合や、画像サイズが大きい動画像のビットストリームを復号処理する場合に有利である。
図1は、本発明の実施形態に係る画像復号装置の構成を示すブロック図である。 図2は、カラーフォーマット4:2:0の場合のマクロブロックに含まれるブロックを示す説明図である。 図3は、図1の画像復号装置が復号する際に参照するブロックの例を示す説明図である。 図4は、H.264に従って復号する際に参照される画素の例を示す説明図である。 図5は、図1のストリーム分割器におけるビットストリームの分割についての説明図である。 図6は、図1の画像復号装置の動作の例を示すタイミングチャートである。 図7は、ブロックY2、Y3を復号する図1の画像復号部によって参照される画素の例を示す説明図である。 図8は、図1の画像復号部の構成例を示すブロック図である。 図9は、図1の画像復号部の基本的な動作の例を示すタイミングチャートである。 図10は、輝度信号を処理する図1の画像復号部の内部の動作の例を具体的に示すタイミングチャートである。 図11は、図1の画像復号装置の第1の変形例の構成を示すブロック図である。 図12は、カラーフォーマット4:2:2の場合のマクロブロックに含まれるブロックを示す説明図である。 図13は、図11のストリーム分割器におけるビットストリームの分割についての説明図である。 図14は、図11の画像復号装置の動作の例を示すタイミングチャートである。 図15は、図1の画像復号装置の第2の変形例の構成を示すブロック図である。 図16は、カラーフォーマット4:4:4の場合のマクロブロックに含まれるブロックを示す説明図である。 図17は、図1の画像復号装置の第3の変形例の構成を示すブロック図である。 図18は、図17の画像復号装置の動作の例を示すタイミングチャートである。 図19は、動きベクトル予測の際に参照されるブロックの例を示す説明図である。 図20は、DC/AC予測の際に参照されるブロックの例を示す説明図である。 図21(a)は、DC係数の予測についての説明図である。図21(b)は、AC係数の予測についての説明図である。
 以下、本発明の実施の形態について、図面を参照しながら説明する。図面において下2桁が同じ参照番号で示された構成要素は、互いに対応しており、同一の又は類似の構成要素である。
 本明細書における各機能ブロックは、典型的にはハードウェアで実現され得る。例えば各機能ブロックは、IC(集積回路)の一部として半導体基板上に形成され得る。ここでICは、LSI(Large-Scale Integrated circuit)、ASIC(Application-Specific Integrated Circuit)、ゲートアレイ、FPGA(Field Programmable Gate Array)等を含む。代替としては各機能ブロックの一部又は全ては、ソフトウェアで実現され得る。例えばそのような機能ブロックは、プロセッサ上で実行されるプログラムによって実現され得る。換言すれば、本明細書で説明される各機能ブロックは、ハードウェアで実現されてもよいし、ソフトウェアで実現されてもよいし、ハードウェアとソフトウェアとの任意の組合せで実現され得る。
 図1は、本発明の実施形態に係る画像復号装置の構成を示すブロック図である。図1の画像復号装置は、画面内予測を行って動画像を符号化することによって得られた符号化データを有する入力ビットストリームISTを復号する画像復号装置であって、ストリーム分割器110と、ストリームバッファ120、121、122、123と、パラメータ復号器132と、復号タイミング制御器134と、参照情報格納部136と、画像復号部141、142、143と、フレームメモリ152とを有している。ここでは、入力ビットストリームISTは、カラーフォーマット4:2:0(Y:Cb(Pb):Cr(Pr)=4:2:0)の動画像がITU-T H.264(以下ではH.264と称する)に従って符号化されて得られたビットストリームであるとする。
 図2は、カラーフォーマット4:2:0の場合のマクロブロックに含まれるブロックを示す説明図である。入力ビットストリームISTの動画像に含まれる各ピクチャは、多数のマクロブロックで構成されている。各マクロブロックは、図2のように、輝度信号ブロックY0、Y1、Y2、Y3と、青色差信号ブロックCbと、赤色差信号ブロックCrとを有しているとする。輝度信号ブロックY0~Y3は、マクロブロック内において2行2列に配置される。ブロックY0~Y3、Cb、及びCrは、いずれも、画面内予測における予測単位である。マクロブロックは、例えばH.264に定義されている。
 以下では例として、各マクロブロックは16×16画素に対応する符号化データを有するものとして説明する。この場合、ブロックY0~Y3、Cb、及びCrは、それぞれ8×8画素に対応する符号化データを有する。マクロブロックが対応する画素数は、これには限られず、例えば8×8画素であってもよい。
 いずれも動画像符号化技術であるMPEG2とH.264との間の違いについて簡単に説明する。H.264には、画面内の隣接ブロック間の相関関係を利用して圧縮効率を向上させるため、イントラ予測と呼ばれる圧縮符号化技術が導入され、符号化効率の向上が図られている。
 図3は、図1の画像復号装置が復号する際に参照するブロックの例を示す説明図である。図1の画像復号装置による復号の際には、画面内予測が行われる。画面内予測としては、例えば、画素値の予測を行うイントラ予測、動きベクトルを予測する動きベクトル予測、並びにDCT係数のDC成分及びAC成分を予測するDC/AC予測のうちの少なくとも1つが行われる。ここでは、H.264に従ったイントラ予測について説明する。例えばフレーム構造の画像の場合には、図3に示すように、復号対象ブロックの画面内で、このブロックの左、左上、上、及び右上に配置される4つのブロックが参照され得る。復号対象ブロック毎に最適な予測方向を選択できるようになっている。MPEG2の場合には、異なるフレームのブロックが参照されるが、同一の画面内のブロックは参照されない。
 図4は、H.264に従って復号する際に参照される画素の例を示す説明図である。例えばフレーム構造の画像を対象としてH.264のイントラ8×8予測が行われる場合には、対象ブロックを復号する際に、図4のように対象ブロックに隣接している画素情報が参照情報として用いられる。
 図5は、図1のストリーム分割器110におけるビットストリームの分割についての説明図である。以下では、図1の画像復号装置によるマクロブロック層以下の復号処理動作について説明する。
 ストリーム分割器110は、入力ビットストリームISTのビットパターン解析を行い、その解析結果に従って、入力ビットストリームISTを分割ストリームSTP、STA、STB、STCに分割する。この際、ストリーム分割器110は、画素データを求める復号処理は行わない。
 ストリーム分割器110は、入力ビットストリームISTの各マクロブロック(MB)を、マクロブロックに含まれる1つ以上のブロックの符号化データが分割ストリームSTA、STB、STCのそれぞれに含まれるように、分割する。ここでは、ストリーム分割器110は、図5のように、分割ストリームSTPにはマクロブロックヘッダ、分割ストリームSTAには輝度信号ブロックY0及びY1の符号化データ、分割ストリームSTBには輝度信号ブロックY2及びY3の符号化データ、分割ストリームSTCには色差信号ブロックCb及びCrの符号化データが含まれるように、入力ビットストリームISTを分割する。
 ストリーム分割器110は、分割ストリームSTP、STA、STB、STCをストリームバッファ120、121、122、123にそれぞれ出力する。ストリームバッファ120、121、122、123は、分割ストリームSTP、STA、STB、STCをそれぞれ格納する。したがって、ストリームバッファ120には各マクロブロックの符号化情報を示す符号化データ、ストリームバッファ121には各マクロブロックのブロックY0及びY1の符号化データ、ストリームバッファ122には各マクロブロックのブロックY2及びY3の符号化データ、ストリームバッファ123には各マクロブロックのブロックCb及びCrの符号化データが格納される。
 パラメータ復号器132は、分割ストリームSTPを格納しているストリームバッファ120からマクロブロックヘッダMBHを読み出し、復号する。パラメータ復号器132は、復号して得られたマクロブロック符号化情報MBIを画像復号部141に出力し、復号が完了したことを示す完了信号EPを復号タイミング制御器134に出力する。
 復号タイミング制御器134は、パラメータ復号部132、及び画像復号部141~143に、起動信号SP、SA、SB、SCをそれぞれ出力することによって、パラメータ復号器132、及び画像復号部141~143の復号処理の開始タイミングを制御する。この際、復号タイミング制御器134は、画像復号部141~143のうち、復号処理に必要な隣接ブロックの画像が既に求められている画像復号部に処理を開始させる。
 画像復号部141~143は、処理を開始すべきことを復号タイミング制御器134から起動信号SA、SB、SCによって通知されると、画像復号部141~143の間でデータの転送を行う。転送されるデータには、マクロブロック符号化情報MBIが含まれる。画像復号部141~143による復号の際には、イントラ予測が行われる。
 画像復号部141は、復号タイミング制御器134からの起動信号SAにより起動され、分割ストリームSTAを格納しているストリームバッファ121から符号化データCYAを読み出し、必要に応じてフレームメモリ152及び参照情報格納部136にアクセスしながら、符号化データCYAを復号する。画像復号部141は、復号して得られた復号画像DYAをフレームメモリ152に格納させ、復号が完了したことを示す完了信号EAを復号タイミング制御器134に出力し、マクロブロック符号化情報MBIを画像復号部142に出力する。
 画像復号部142は、復号タイミング制御器134からの起動信号SBにより起動され、分割ストリームSTBを格納しているストリームバッファ122から符号化データCYBを読み出し、必要に応じてフレームメモリ152及び参照情報格納部136にアクセスしながら、符号化データCYBを復号する。画像復号部142は、復号して得られた復号画像DYBをフレームメモリ152に格納させ、復号が完了したことを示す完了信号EBを復号タイミング制御器134に出力し、マクロブロック符号化情報MBIを画像復号部143に出力する。
 画像復号部143は、復号タイミング制御器134からの起動信号SCにより起動され、分割ストリームSTCを格納しているストリームバッファ123から符号化データCCを読み出し、必要に応じてフレームメモリ152及び参照情報格納部136にアクセスしながら、符号化データCCを復号する。画像復号部143は、復号して得られた復号画像DCをフレームメモリ152に格納させ、復号が完了したことを示す完了信号ECを復号タイミング制御器134に出力する。
 参照情報格納部136は、画像復号部141~143において符号化データCYA、CYB、CCを復号する過程で必要な参照情報を格納する。格納される参照情報は、例えば、画像復号部141~143での復号処理結果として得られた、画像(イントラ予測画素)や予測された動きベクトルである。参照情報は、画像復号部141~143での中間段階の処理結果(例えばデブロッキングフィルタを通す前の画像)であってもよい。フレームメモリ152は、画像復号部141~143で復号された復号画像DYA、DYB、DCを格納する。
 図6は、図1の画像復号装置の動作の例を示すタイミングチャートである。図6を参照しながら各期間の処理について詳しく説明する。
 <マクロブロック処理期間MI0>
 ストリームバッファ120~123に分割ストリームがそれぞれ格納されると、復号タイミング制御器134は、パラメータ復号器132に対して起動信号SPを出力する。パラメータ復号器132は、起動信号SPを受け取ると、ストリームバッファ120からマクロブロックヘッダMBHを読み出して復号し、マクロブロック#0のマクロブロック符号化情報を得る。マクロブロックヘッダMBHの復号が完了すると、パラメータ復号器132は、復号タイミング制御器134に対して完了信号EPを出力することによって完了通知を行う。
 <マクロブロック処理期間MI1>
 完了信号EPを受けると、復号タイミング制御器134は、マクロブロック処理期間MI0の終了を認識し、次のマクロブロック#1の符号化情報を得るために、起動信号SPを出力してパラメータ復号器132を起動する。更に復号タイミング制御器134は、マクロブロック#0のブロックY0、Y1の復号処理を行うために、画像復号部141に対して起動信号SAを出力する。パラメータ復号器132は、起動信号SPを受け取ると、期間MI0と同様に、ストリームバッファ120からマクロブロックヘッダMBHを読み出して復号し、マクロブロック#1のマクロブロック符号化情報を得る。パラメータ復号器132は、復号タイミング制御器134に対して完了信号EPを出力することによって完了通知を行う。
 起動信号SAを受け取ると、画像復号部141は、復号処理に必要なマクロブロック#0のマクロブロック符号化情報MBIをパラメータ復号器132から受け取り、ストリームバッファ121から符号化データCYAを読み出す。画像復号部141は、読み出された符号化データを、マクロブロック#0のマクロブロック符号化情報MBIを用いて復号し、得られたブロックY0、Y1の復号画像DYAをフレームメモリ152に出力する。復号が完了すると、画像復号部141は、復号タイミング制御器134に対して完了信号EAを出力することによって完了通知を行う。画像復号部141は、得られたマクロブロック#0のブロックY0、Y1の復号画像のうち、マクロブロック#0のブロックY2、Y3の復号処理に必要な部分を参照情報として参照情報格納部136に格納させる。
 <マクロブロック処理期間MI2>
 完了信号EP及びEAを受けると、復号タイミング制御器134は、マクロブロック処理期間MI1の終了を認識し、次のマクロブロック#2の符号化情報を得るために、起動信号SPを出力してパラメータ復号器132を起動する。また、復号タイミング制御器134は、マクロブロック#1のブロックY0、Y1の復号処理を行うために、画像復号部141に対して起動信号SAを出力する。
 更に、復号タイミング制御器134は、マクロブロック#0のブロックY2、Y3の復号処理を行うために、画像復号部142に対して起動信号SBを出力する。パラメータ復号器132は、起動信号SPを受け取ると、期間MI0と同様にしてマクロブロック#2のマクロブロック符号化情報を得る。
 画像復号部141は、マクロブロック#0に代えてマクロブロック#1に関して処理を行う点の他は、期間MI1と同様の動作を行う。画像復号部141は、得られたマクロブロック#1のブロックY0、Y1の復号画像のうち、マクロブロック#1のブロックY2、Y3の復号処理に必要な部分を参照情報として参照情報格納部136に格納させる。
 図7は、ブロックY2、Y3を復号する図1の画像復号部142によって参照される画素の例を示す説明図である。各マクロブロックが図7のように4つのブロックY0、Y1、Y2、及びY3を有しているとする。画像復号部142に必要な情報に着目すると、ブロックY2及びY3が復号される際には、図7のようにブロックY2及びY3に隣接する画素の情報が参照情報として用いられる。これらの画素は、
(1)ブロックY2及びY3と同じマクロブロックに属するブロックY0及びY1、
(2)左隣接マクロブロックのブロックY1、並びに、
(3)左隣接マクロブロックのブロックY3
に含まれている。
 これらのうち、(1)及び(2)については、画像復号部141が復号処理結果として参照情報格納部136に格納する。(1)及び(2)は、画像復号部142がブロックY2及びY3を処理する前に格納される。画像復号部142は、(1)及び(2)を参照情報格納部136から読み出して用いる。(3)は、画像復号部142で処理されるブロックであり、ブロックY2及びY3を処理する前に処理されるマクロブロックの復号結果であるので、画像復号部142は、参照情報格納部136を経由することなく(3)を用いることができる。
 起動信号SB受け取ると、画像復号部142は、復号処理に必要なマクロブロック#0のマクロブロック符号化情報MBIを画像復号部141から受け取り、ストリームバッファ122から符号化データCYBを読み出し、読み出された符号化データを復号し、ブロックY2、Y3の復号画像を得る。イントラ予測処理で参照が必要なマクロブロック#0のブロックY0、Y1の復号画像データは、期間MI1において画像復号部141によって参照情報として参照情報格納部136に格納されている。画像復号部142は、復号の際には、マクロブロック#0のブロックY0、Y1の復号画像及びその他の参照情報を読み出して処理を行う。
 画像復号部142は、得られたブロックY2、Y3の復号画像DYBをフレームメモリ152に出力する。復号が完了すると、画像復号部142は、復号タイミング制御器134に対して完了信号EBを出力することによって完了通知を行う。
 <マクロブロック処理期間MI3>
 完了信号EP、EA及びEBを受けると、復号タイミング制御器134は、マクロブロック処理期間MI2の終了を認識し、次のマクロブロック#3の符号化情報を得るために、起動信号SPを出力してパラメータ復号器132を起動する。また、復号タイミング制御器134は、マクロブロック#2のブロックY0、Y1の復号処理を行うために、画像復号部141に対して起動信号SAを出力する。
 また、復号タイミング制御器134は、マクロブロック#1のブロックY2、Y3の復号処理を行うために、画像復号部142に対して起動信号SBを出力する。更に、復号タイミング制御器134は、マクロブロック#0のブロックCb、Crの復号処理を行うために、画像復号部143に対して起動信号SCを出力する。パラメータ復号器132は、起動信号SPを受け取ると、期間MI0と同様にしてマクロブロック#3のマクロブロック符号化情報を得る。
 画像復号部141は、マクロブロック#0に代えてマクロブロック#2に関して処理を行う点の他は、期間MI1と同様の動作を行う。画像復号部141は、得られたマクロブロック#2のブロックY0、Y1の復号画像のうち、マクロブロック#2のブロックY2、Y3の復号処理に必要な部分を参照情報として参照情報格納部136に格納させる。画像復号部142は、マクロブロック#0に代えてマクロブロック#1に関して処理を行う点の他は、期間MI2と同様の動作を行う。
 起動信号SC受け取ると、画像復号部143は、復号処理に必要なマクロブロック#0のマクロブロック符号化情報MBIを画像復号部142から受け取り、ストリームバッファ123から符号化データCCを読み出し、読み出された符号化データを復号し、ブロックCb、Crの復号画像を得る。画像復号部143は、得られたブロックCb、Crの復号画像DCをフレームメモリ152に出力する。復号が完了すると、画像復号部143は、復号タイミング制御器134に対して完了信号ECを出力することによって完了通知を行う。
 <マクロブロック処理期間MI4>
 完了信号EP、EA、EB及びECを受けると、復号タイミング制御器134は、マクロブロック処理期間MI3の終了を認識し、起動信号SP、SA、SB及びSCを出力する。画像復号部141、142、143は、それぞれ、1つ後のマクロブロックを処理する点の他は、期間MI3と同様の処理を行う。
 マクロブロック処理期間MI5以降においても、処理対象のマクロブロックを期間毎に1つずつ後のマクロブロックとする点の他は、期間MI3と同様の処理を繰り返して行う。以上のように、パラメータ復号器132、画像復号部141~143は、マクロブロックに関する処理をパイプライン式に行う。
 なお、H.264規格においては、スキップマクロブロックや符号量が0のブロックも存在する。これらのマクロブロックやブロックが存在することは、パラメータCoded_Block_Pattern、Mb_Skip_Flag、又はMb_Skip_runから判断することができる。このため、画像復号部141~143は、パラメータの1つとしてCoded_Block_Pattern又はスキップ情報を受け取ることによって、各ブロックの符号化データが分割ストリームに含まれているかどうかを判断し、Coded_Block_Patternの該当ブロックを示すビットが0の場合には少なくとも可変長復号処理は行わない。
 参照情報格納部136が少なくとも2つの領域を有し、画像復号部141~143は、新たなマクロブロックの処理を行う毎に、参照情報格納部136の2つの領域に交互に書き込みを行うようにしてもよい。例えば、画像復号部141~143は、マクロブロック#0、#2、#4、…の処理結果を参照情報格納部136の第1の領域に書き込み、マクロブロック#1、#3、#5、…の処理結果を参照情報格納部136の第2の領域に書き込む。
 ストリーム分割器110が、分割ストリームSTA、STB、STCのそれぞれに、あるマクロブロックのブロックが2つずつ含まれるように入力ビットストリームISTを分割する場合について説明したが、複数の分割ストリームのそれぞれに、あるマクロブロックのブロックが1つずつ又は3つ以上ずつ含まれるように入力ビットストリームISTを分割してもよい。この場合には、分割ストリームのそれぞれに対応する、ストリームバッファ及び画像復号部を用いるようにする。
 以上のように、図1の画像復号装置によると、マクロブロックを、そのマクロブロックに含まれる1つ以上のブロックを単位として分割するので、ピクチャを構成するスライスの大きさに関係なく、マクロブロックを分割することができる。このため、ピクチャがいかなるスライスで構成されている場合であっても、効率的な並列復号処理を実現できる。例えばピクチャが1つのスライスで構成されている場合や、ピクチャが複数のスライスで構成されているが各スライスの大きさに極端な偏りがある場合であっても、問題なく並列処理を行うことができる。
 また、画像復号部は、画面内予測に用いる参照情報として他の画像復号部の復号結果を参照し、かつ、複数の画像復号部がマクロブロック単位で同期して処理するので、分割ストリームの並列復号処理が可能となる。各マクロブロックの符号化データを均等に3分割するので、3つの画像復号部141~143における処理の負荷をほぼ均等にすることができる。
 したがって、ピクチャを構成するスライスに対する制約がないH.264等の画像符号化規格に準拠したビットストリームに対して、低消費電力かつ低コストで、並列復号処理を行うことができる。
 図1の画像復号装置では画像復号部141~143をパイプライン動作させている。しかし、ブロックCb及びCrを処理する画像復号部143は画像復号部141及び142の復号結果を用いる必要がないので、画像復号部143が画像復号部141又は142と同時に、同じマクロブロックの処理を行うようにしてもよい。
 輝度信号ブロックを復号する画像復号部141、142と色差信号ブロックを復号する画像復号部143とは、同様に構成されていてもよいし、画像復号部141、142は輝度信号の復号処理に、画像復号部143は色差信号の復号処理に特化した構成を有していてもよい。
 図8は、図1の画像復号部141の構成例を示すブロック図である。画像復号部141は、可変長復号部161と、逆量子化部162と、逆変換部163と、動き補償部164と、イントラ予測部165と、デブロッキングフィルタ166とを有している。図1の画像復号部142及び143も、画像復号部141と同様に構成されている。画像復号部141~143は、次のように動作することができる。
 図9は、図1の画像復号部141の動作の例を示すタイミングチャートである。可変長復号部161は、期間NI0、NI1、NI2、NI3、NI4、…において、マクロブロック#0、#1、#2、#3、#4、…に処理をそれぞれ行い、その結果を逆量子化部162に出力する。各マクロブロックに対する処理には、図2の6ブロックY0~Y3、Cb及びCrに対する処理を含む。
 逆量子化部162は、期間NI1、NI2、NI3、NI4、…において、可変長復号部161が期間NI0、NI1、NI2、NI3、…に行った処理結果に対してそれぞれ処理を行い、その結果を逆変換部163に出力する。逆変換部163は、期間NI2、NI3、NI4、…において、逆量子化部162が期間NI1、NI2、NI3、…に行った処理結果に対してそれぞれ処理を行い、その結果を動き補償部164及びイントラ予測部165に出力する。
 動き補償部164及びイントラ予測部165は、期間NI3、NI4、…において、逆変換部163が期間NI2、NI3、…に行った処理結果に対してそれぞれ処理を行い、その結果をデブロッキングフィルタ166に出力する。デブロッキングフィルタ166は、期間NI4、NI5、…において、動き補償部164及びイントラ予測部165が期間NI3、NI4、…に行った処理結果に対してそれぞれ処理を行い、その結果を出力する。
 このように、画像復号部141は、パイプライン処理を行う。画像復号部142及び143も、図9と同様に動作を行う。
 図10は、輝度信号を処理する図1の画像復号部141及び142の内部の動作の例を具体的に示すタイミングチャートである。期間NJ0において、画像復号部141の可変長復号部161は、ストリームバッファ121から符号化データCYAを読み出して可変長復号し、得られたマクロブロック#0のブロックY0、Y1の復号結果を逆量子化部162に出力する。
 期間NJ1において、可変長復号部161は、ストリームバッファ121から符号化データCYAを読み出して可変長復号し、得られたマクロブロック#1のブロックY0、Y1の復号結果を逆量子化部162に出力する。逆量子化部162は、可変長復号部161で求められたマクロブロック#0の復号結果に逆量子化を行い、その結果を逆変換部163に出力する。
 期間NJ2において、可変長復号部161は、ストリームバッファ121から符号化データCYAを読み出して可変長復号し、得られたマクロブロック#2のブロックY0、Y1の復号結果を逆量子化部162に出力する。逆量子化部162は、可変長復号部161で求められたマクロブロック#1の復号結果に逆量子化を行い、その結果を逆変換部163に出力する。逆変換部163は、逆量子化部162で求められたマクロブロック#0の処理結果に逆直交変換を行い、その結果を動き補償部164及びイントラ予測部165に出力する。
 期間NJ3において、可変長復号部161は、ストリームバッファ121から符号化データCYAを読み出して可変長復号し、得られたマクロブロック#3のブロックY0、Y1の復号結果を逆量子化部162に出力する。逆量子化部162は、可変長復号部161で求められたマクロブロック#2の復号結果に逆量子化を行い、その結果を逆変換部163に出力する。逆変換部163は、逆量子化部162で求められたマクロブロック#1の処理結果に逆直交変換を行い、その結果を動き補償部164及びイントラ予測部165に出力する。動き補償部164及びイントラ予測部165は、逆変換部163で求められたマクロブロック#0の処理結果に動き補償及びイントラ予測を行い、その結果をデブロッキングフィルタ166に出力する。
 期間NJ4において、可変長復号部161は、ストリームバッファ121から符号化データCYAを読み出して可変長復号し、得られたマクロブロック#4のブロックY0、Y1の復号結果を逆量子化部162に出力する。逆量子化部162は、可変長復号部161で求められたマクロブロック#3の復号結果に逆量子化を行い、その結果を逆変換部163に出力する。逆変換部163は、逆量子化部162で求められたマクロブロック#2の処理結果に逆直交変換を行い、その結果を動き補償部164及びイントラ予測部165に出力する。動き補償部164及びイントラ予測部165は、逆変換部163で求められたマクロブロック#1の処理結果に動き補償及びイントラ予測を行い、その結果をデブロッキングフィルタ166に出力する。デブロッキングフィルタ166は、動き補償部164及びイントラ予測部165で求められたマクロブロック#0の処理結果にデブロッキング処理を行い、その結果を復号結果DYAとして出力する。
 画像復号部142の可変長復号部、逆量子化部、逆変換部、動き補償部、イントラ予測部、及びデブロッキングフィルタも、各マクロブロックのブロックY2、Y3に対して、画像復号部141と同様に処理を行う。但し、画像復号部142の処理は、期間NJ1から開始される。
 このように、画像復号部の内部においてもパイプライン処理を行うようにすると、図6のように処理を行う場合に比べて、各ステージの長さが短くなるので、より高速に処理を行うことができる。
 図11は、図1の画像復号装置の第1の変形例の構成を示すブロック図である。図11の画像復号装置は、ストリームバッファ123に代えてストリームバッファ223、224を、画像復号部143に代えて画像復号部243、244を有している点が、図1の画像復号装置とは異なっている。ここでは、入力ビットストリームISTは、カラーフォーマット4:2:2(Y:Cb(Pb):Cr(Pr)=4:2:2)の動画像がH.264に従って符号化されて得られたビットストリームであるとする。
 図12は、カラーフォーマット4:2:2の場合のマクロブロックに含まれるブロックを示す説明図である。入力ビットストリームISTの動画像に含まれる各ピクチャは、多数のマクロブロックで構成されている。各マクロブロックは、図12のように、輝度信号ブロックY0、Y1、Y2、Y3と、青色差信号ブロックCb0、Cb1と、赤色差信号ブロックCr0、Cr1とを有しているとする。輝度信号ブロックY0~Y3は、マクロブロック内において2行2列に配置される。青色差信号ブロックCb0、Cb1は、マクロブロック内において2行1列に配置される。赤色差信号ブロックCr0、Cr1は、マクロブロック内において2行1列に配置される。ブロックY0~Y3、Cb0、Cb1、Cr0及びCr1は、いずれも、画面内予測における予測単位である。
 各マクロブロックが16×16画素に対応する符号化データを有する場合、ブロックY0~Y3、Cb0、Cb1、Cr0及びCr1は、それぞれ8×8画素に対応する符号化データを有する。マクロブロックが対応する画素数は、これには限られず、例えば8×8画素であってもよい。
 図13は、図11のストリーム分割器210におけるビットストリームの分割についての説明図である。以下では、図11の画像復号装置によるマクロブロック層以下の復号処理動作について説明する。
 ストリーム分割器210は、入力ビットストリームISTのビットパターン解析を行い、その解析結果に従って、入力ビットストリームISTを分割ストリームSTP、STA、STB、STC、STDに分割する。この際、ストリーム分割器210は、画素データを求める復号処理は行わない。
 ストリーム分割器210は、入力ビットストリームISTの各マクロブロックを、マクロブロックに含まれる1つ以上のブロックに対応する符号化データが分割ストリームSTA、STB、STC、STDのそれぞれに含まれるように、分割する。ここでは、ストリーム分割器210は、図13のように、分割ストリームSTPにはマクロブロックヘッダ、分割ストリームSTAには輝度信号ブロックY0及びY1の符号化データ、分割ストリームSTBには輝度信号ブロックY2及びY3の符号化データ、分割ストリームSTCには色差信号ブロックCb0及びCr0の符号化データ、分割ストリームSTDには色差信号ブロックCb1及びCr1の符号化データが含まれるように、入力ビットストリームISTを分割する。
 ストリーム分割器210は、分割ストリームSTP、STA、STB、STC、STDをストリームバッファ120、121、122、223、224にそれぞれ出力する。ストリームバッファ120、121、122、223、224は、分割ストリームSTP、STA、STB、STC、STDをそれぞれ格納する。したがって、ストリームバッファ120には各マクロブロックの符号化情報を示す符号化データ、ストリームバッファ121には各マクロブロックのブロックY0及びY1の符号化データ、ストリームバッファ122には各マクロブロックのブロックY2及びY3の符号化データ、ストリームバッファ223には各マクロブロックのブロックCb0及びCr0の符号化データ、ストリームバッファ224には各マクロブロックのブロックCb1及びCr1の符号化データが格納される。
 図14は、図11の画像復号装置の動作の例を示すタイミングチャートである。図11を参照しながら各期間の処理について詳しく説明する。マクロブロック処理期間MI0~MI2については、図6を参照して行った説明と同様であるので、説明を省略する。
 <マクロブロック処理期間MI3>
 完了信号EP、EA及びEBを受けると、復号タイミング制御器234は、マクロブロック処理期間MI2の終了を認識し、次のマクロブロック#3の符号化情報を得るために、起動信号SPを出力してパラメータ復号器132を起動する。また、復号タイミング制御器234は、マクロブロック#2のブロックY0、Y1の復号処理を行うために、画像復号部141に対して起動信号SAを出力する。
 また、復号タイミング制御器234は、マクロブロック#1のブロックY2、Y3の復号処理を行うために、画像復号部142に対して起動信号SBを出力する。更に、復号タイミング制御器234は、マクロブロック#0のブロックCb0、Cr0の復号処理を行うために、画像復号部243に対して起動信号SCを出力する。パラメータ復号器132は、起動信号SPを受け取ると、期間MI0と同様にしてマクロブロック#3のマクロブロック符号化情報を得る。画像復号部141及び142に関しては、図6と同様であるので、説明を省略する。
 起動信号SC受け取ると、画像復号部243は、復号処理に必要なマクロブロック#0のマクロブロック符号化情報MBIを画像復号部142から受け取り、ストリームバッファ223から符号化データCC0を読み出して復号し、マクロブロック#0のブロックCb0、Cr0の復号画像を得る。画像復号部243は、得られたブロックCb0、Cr0の復号画像DC0をフレームメモリ252に出力する。復号が完了すると、画像復号部243は、復号タイミング制御器234に対して完了信号ECを出力することによって完了通知を行う。画像復号部243は、得られたマクロブロック#0のブロックCb0、Cr0の復号画像のうち、マクロブロック#0のブロックCb1、Cr1の復号処理に必要な部分を参照情報として参照情報格納部236に格納させる。
 <マクロブロック処理期間MI4>
 完了信号EP、EA、EB及びECを受けると、復号タイミング制御器234は、マクロブロック処理期間MI3の終了を認識し、起動信号SP、SA、SB及びSCを出力する。画像復号部141、142、243は、それぞれ、1つ後のマクロブロックを処理する点の他は、期間MI3と同様の処理を行う。
 復号タイミング制御器234は、マクロブロック#0のブロックCb1、Cr1の復号処理を行うために、画像復号部243に対して起動信号SDを出力する。パラメータ復号器132は、起動信号SPを受け取ると、期間MI0と同様にしてマクロブロック#4のマクロブロック符号化情報を得る。
 起動信号SD受け取ると、画像復号部244は、復号処理に必要なマクロブロック#0のマクロブロック符号化情報MBIを画像復号部243から受け取り、ストリームバッファ224から符号化データCC1を読み出して復号し、マクロブロック#0のブロックCb1、Cr1の復号画像を得る。イントラ予測処理で参照が必要なマクロブロック#0のブロックCb0、Cr0の復号画像データは、期間MI3において参照情報として参照情報格納部236に格納されている。画像復号部244は、復号の際には、マクロブロック#0のブロックCb0、Cr0の復号画像及びその他の参照情報を読み出して処理を行う。
 画像復号部244は、得られたブロックCb1、Cr1の復号画像DC1をフレームメモリ252に出力する。復号が完了すると、画像復号部244は、復号タイミング制御器234に対して完了信号EDを出力することによって完了通知を行う。
 <マクロブロック処理期間MI5>
 完了信号EP、EA、EB、EC及びEDを受けると、復号タイミング制御器234は、マクロブロック処理期間MI4の終了を認識し、起動信号SP、SA、SB、SC及びSDを出力する。画像復号部141、142、243、244は、それぞれ、1つ後のマクロブロックを処理する点の他は、期間MI4と同様の処理を行う。
 その後のマクロブロック処理期間においても、処理対象のマクロブロックを期間毎に1つずつ後のマクロブロックとする点の他は、期間MI4と同様の処理を繰り返して行う。以上のように、パラメータ復号器132、画像復号部141、142、243、244は、マクロブロックに関する処理をパイプライン式に行う。
 以上のように、図11の画像復号装置によると、画像復号部は、画面内予測に用いる参照情報として他の画像復号部の復号結果を参照し、かつ、複数の画像復号部がマクロブロック単位で同期して処理するので、分割ストリームの並列復号処理が可能となる。各マクロブロックの符号化データを均等に4分割するので、4つの画像復号部141、142、243、244における処理の負荷をほぼ均等にすることができる。
 なお、画像復号部243、244は画像復号部141及び142の復号結果を用いる必要がないので、画像復号部243が画像復号部141と同時に同じマクロブロックの処理を行い、画像復号部244が画像復号部142と同時に同じマクロブロックの処理を行うようにしてもよい。
 図15は、図1の画像復号装置の第2の変形例の構成を示すブロック図である。図15の画像復号装置は、ストリームバッファ123に代えてストリームバッファ323、324、325、326を、画像復号部143に代えて画像復号部343、344、345、346を有している点が、図1の画像復号装置とは異なっている。ここでは、入力ビットストリームISTは、カラーフォーマット4:4:4(Y:Cb(Pb):Cr(Pr)=4:4:4)の動画像がH.264に従って符号化されて得られたビットストリームであるとする。
 図16は、カラーフォーマット4:4:4の場合のマクロブロックに含まれるブロックを示す説明図である。入力ビットストリームISTの動画像に含まれる各ピクチャは、多数のマクロブロックで構成されている。各マクロブロックは、図16のように、輝度信号ブロックY0、Y1、Y2、Y3と、青色差信号ブロックCb0、Cb1、Cb2、Cb3と、赤色差信号ブロックCr0、Cr1、Cr2、Cr3とを有しているとする。輝度信号ブロックY0~Y3は、マクロブロック内において2行2列に配置される。青色差信号ブロックCb0~Cb3は、マクロブロック内において2行2列に配置される。赤色差信号ブロックCr0~Cr3は、マクロブロック内において2行2列に配置される。ブロックY0~Y3、Cb0~Cb3、及びCr0~Cr3は、いずれも、画面内予測における予測単位である。
 各マクロブロックが16×16画素に対応する符号化データを有する場合、ブロックY0~Y3、Cb0~Cb3、及びCr0~Cr3は、それぞれ8×8画素に対応する符号化データを有する。マクロブロックが対応する画素数は、これには限られず、例えば8×8画素であってもよい。
 以下では、図15の画像復号装置によるマクロブロック層以下の復号処理動作について説明する。ストリーム分割器310は、入力ビットストリームISTのビットパターン解析を行い、その解析結果に従って、入力ビットストリームISTを分割ストリームSTP、STA、STB、STC、STD、STE、STFに分割する。この際、ストリーム分割器310は、画素データを求める復号処理は行わない。
 ストリーム分割器310は、入力ビットストリームISTの各マクロブロックを、マクロブロックに含まれる1つ以上のブロックに対応する符号化データが分割ストリームSTA、STB、STC、STD、STE、STFのそれぞれに含まれるように、分割する。ここでは、ストリーム分割器310は、分割ストリームSTPにはマクロブロックヘッダ、分割ストリームSTAには輝度信号ブロックY0及びY1の符号化データ、分割ストリームSTBには輝度信号ブロックY2及びY3の符号化データ、分割ストリームSTCには色差信号ブロックCb0及びCb1の符号化データ、分割ストリームSTDには色差信号ブロックCb2及びCr3の符号化データ、分割ストリームSTEには色差信号ブロックCr0及びCr1の符号化データ、分割ストリームSTFには色差信号ブロックCr2及びCr3の符号化データが含まれるように、入力ビットストリームISTを分割する。
 ストリーム分割器310は、分割ストリームSTP、STA、STB、STC、STD、STE、STFをストリームバッファ120、121、122、323、324、325、326にそれぞれ出力する。ストリームバッファ120~122、323~326は、分割ストリームSTP、STA、STB、STC、STD、STE、STFをそれぞれ格納する。
 復号タイミング制御器334は、画像復号部343~346に、起動信号SC、SD、SE、SFをそれぞれ出力することによって、画像復号部343~346の復号処理の開始タイミングを制御する点の他は、図1の復号タイミング制御器134とほぼ同様に構成されている。画像復号部141、142については、図1の場合と同様であるので説明を省略する。
 画像復号部343は、復号タイミング制御器334からの起動信号SCにより起動され、分割ストリームSTCを格納しているストリームバッファ323から符号化データCCAを読み出し、必要に応じてフレームメモリ352及び参照情報格納部336にアクセスしながら、符号化データCCAを復号する。画像復号部343は、復号して得られた復号画像DCAをフレームメモリ352に格納させ、復号が完了したことを示す完了信号ECを復号タイミング制御器334に出力し、マクロブロック符号化情報MBIを画像復号部344に出力する。
 画像復号部344は、復号タイミング制御器334からの起動信号SDにより起動され、分割ストリームSTDを格納しているストリームバッファ324から符号化データCCBを読み出し、必要に応じてフレームメモリ352及び参照情報格納部336にアクセスしながら、符号化データCCBを復号する。画像復号部344は、復号して得られた復号画像DCBをフレームメモリ352に格納させ、復号が完了したことを示す完了信号EDを復号タイミング制御器334に出力し、マクロブロック符号化情報MBIを画像復号部345に出力する。
 画像復号部345は、復号タイミング制御器334からの起動信号SEにより起動され、分割ストリームSTEを格納しているストリームバッファ325から符号化データCCCを読み出し、必要に応じてフレームメモリ352及び参照情報格納部336にアクセスしながら、符号化データCCCを復号する。画像復号部345は、復号して得られた復号画像DCCをフレームメモリ352に格納させ、復号が完了したことを示す完了信号EEを復号タイミング制御器334に出力し、マクロブロック符号化情報MBIを画像復号部346に出力する。
 画像復号部346は、復号タイミング制御器334からの起動信号SFにより起動され、分割ストリームSTFを格納しているストリームバッファ326から符号化データCCDを読み出し、必要に応じてフレームメモリ352及び参照情報格納部336にアクセスしながら、符号化データCCDを復号する。画像復号部346は、復号して得られた復号画像DCDをフレームメモリ352に格納させ、復号が完了したことを示す完了信号EFを復号タイミング制御器334に出力する。
 画像復号部343~346は画像復号部141及び142の復号結果を用いる必要がないので、画像復号部343、345が画像復号部141と同時に同じマクロブロックの処理を行い、画像復号部344、346が画像復号部142と同時に同じマクロブロックの処理を行うことができる。
 図15の画像復号装置によると、画像復号部は、画面内予測に用いる参照情報として他の画像復号部の復号結果を参照し、かつ、複数の画像復号部がマクロブロック単位で同期して処理するので、分割ストリームの並列復号処理が可能となる。各マクロブロックの符号化データを均等に6分割するので、6つの画像復号部141、142、343~346における処理の負荷をほぼ均等にすることができる。
 図17は、図1の画像復号装置の第3の変形例の構成を示すブロック図である。図17の画像復号装置は、画像出力部454を更に有する点が、図1の画像復号装置とは異なっている。画像出力部454は、画像復号部141~143で復号された画像を格納し、1つのマクロブロックに含まれる全てのブロック(ここではブロックY0~Y3、Cb、及びCr)についての復号された画像が格納されると、そのマクロブロックについての復号された画像を出力する。
 図18は、図17の画像復号装置の動作の例を示すタイミングチャートである。図17を参照しながら各期間の処理について詳しく説明する。
 <マクロブロック処理期間MI0>
 図6の場合と同様である。
 <マクロブロック処理期間MI1>
 画像復号部141は、復号して得られたブロックY0、Y1の復号画像DYAを、フレームメモリ452にではなく、画像出力部454に出力する。画像出力部454は、復号画像DYAを格納する。以下の期間においても同様である。その他の点は、図6の場合と同様である。
 <マクロブロック処理期間MI2>
 画像復号部142は、復号して得られたブロックY2、Y3の復号画像DYBを、フレームメモリ452にではなく、画像出力部454に出力する。以下の期間においても同様である。その他の点は、図6の場合と同様である。
 <マクロブロック処理期間MI3>
 画像復号部143は、復号して得られたブロックCb、Crの復号画像DCを、フレームメモリ452にではなく、画像出力部454に出力する。以下の期間においても同様である。その他の点は、図6の場合と同様である。
 <マクロブロック処理期間MI4>
 マクロブロック#0に含まれる全てのブロックについての復号された画像が画像出力部454に格納されると、復号タイミング制御器434は、完了信号EP、EA、EB及びECを受ける。すると、復号タイミング制御器434は、マクロブロック処理期間MI3の終了を認識し、起動信号SP、SA、SB、SC及びSOを出力する。
 画像出力部454は、起動信号SOを受け取ると、復号処理に必要なマクロブロック#0のマクロブロック符号化情報MBIを画像復号部143から受け取り、マクロブロック#0に含まれる全ブロックの復号画像DMBを1マクロブロック単位でフレームメモリ452に出力する。フレームメモリ452は、復号画像DMBを格納する。出力が完了すると、画像出力部454は、復号タイミング制御器434に対して完了信号EOを出力することによって完了通知を行う。その後、画像出力部454は、画像復号部141~143で復号された復号画像DYA、DYB、DCを格納する。
 マクロブロック処理期間MI5以降においても、処理対象のマクロブロックを期間毎に1つずつ後のマクロブロックとする点の他は、期間MI4と同様の処理を繰り返して行う。
 図17の画像復号装置によると、並列に復号処理を行う各画像復号部141~143の復号画像を一括して出力する画像出力部454を有するので、1マクロブロックのデータをまとめて転送できるようになる。転送されるデータの量が比較的少ない複数回の転送が1回の転送にまとめられるので、転送の際のオーバーヘッドを削減し、必要となるバンド幅の増加を抑えることができる。
 次に、動きベクトル予測について説明する。図19は、動きベクトル予測の際に参照されるブロックの例を示す説明図である。例えばフレーム構造の画像の場合には、図19のように、復号対象ブロックの画面内で、このブロックの左、上、及び右上に配置される3つのブロックが参照され得る。右上に配置されるブロックが存在しない場合は左上に配置されるブロックが参照される(図3参照)。
 画像復号部141~143等は、参照情報格納部136に格納された参照情報、例えば、ブロックNAの動きベクトルMVA、ブロックNBの動きベクトルMVB、及びブロックNCの動きベクトルMVCに基づいて復号対象ブロックの動きベクトルMVTを求め、求められた動きベクトルMVTを参照情報格納部136、フレームメモリ152等に出力する。参照情報格納部136は、他のブロックの動きベクトル予測のための参照情報として動きベクトルMVTを格納する。
 次に、DC/AC予測について説明する。図20は、DC/AC予測の際に参照されるブロックの例を示す説明図である。例えばフレーム構造の画像の場合には、図20のように、復号対象ブロックの画面内で、このブロックの左、上、及び左上に配置される3つのブロックが参照され得る(図20参照)。
 図21(a)は、DC予測についての説明図である。ブロックNAのDCT係数DCA、及びブロックNBのDCT係数DCBは、DC成分である。画像復号部141~143等は、DCT係数DCA、又はDCBを、復号対象ブロックの対応するDCT係数(DC成分)として用いる。図21(b)は、AC予測についての説明図である。ブロックNAの左端の列のDCT係数ACA及びブロックNBの上端の行のDCT係数ACBは、AC成分である。画像復号部141~143等は、DCT係数ACAを復号対象ブロックの対応する列のDCT係数として、又は、DCT係数ACBを復号対象ブロックの対応する行のDCT係数として用いる。参照情報格納部136は、他のブロックのDC/AC予測のための参照情報として復号対象ブロックのDCT係数を格納する。
 なお、以上の実施形態ではマクロブロックが輝度信号ブロックY0~Y3、及び色差信号ブロック(Cb及びCr等)を含む場合を例として説明したが、マクロブロックがR(red)G(green)B(blue)を表す信号のブロックを有していてもよいし、H(hue)S(saturation)V(value)を表す信号のブロックを有していてもよい。
 また、以上の実施形態では、2ブロック(例えばブロックY0及びY1、ブロックY2及びY3、又はブロックCb及びCr)を分割単位として、各マクロブロックを分割する例について説明したが、分割単位は1ブロックであってもよいし、ブロックに含まれる1以上のサブブロックであってもよい。1つのマクロブロックが4ブロックより多くのブロックで構成されている場合には、3ブロック以上を分割単位として、各マクロブロックを分割してもよい。例えばマクロブロックが16ブロック(又は16サブブロック)で構成されている場合には、4ブロック(又は4サブブロック)毎に各マクロブロックを分割してもよい。
 ブロックY0~Y3、Cb0~Cb3、及びCr0~Cr3がいずれも8×8画素に対応する符号化データを有する場合について説明したが、各ブロックが、例えば縦16×横8画素、縦8×横16画素、縦8×横4画素、縦4×横8画素、又は4×4画素に対応する符号化データを有していてもよい。
 本発明の多くの特徴及び優位性は、記載された説明から明らかであり、よって添付の特許請求の範囲によって、本発明のそのような特徴及び優位性の全てをカバーすることが意図される。更に、多くの変更及び改変が当業者には容易に可能であるので、本発明は、図示され記載されたものと全く同じ構成及び動作に限定されるべきではない。したがって、全ての適切な改変物及び等価物は本発明の範囲に入るものとされる。
 以上説明したように、本発明の実施形態によると、ピクチャを構成するスライスの大きさに関係なく、マクロブロックを分割することができるので、本発明は、画像復号装置等について有用である。本発明は、更には光ディスク再生装置及び記録装置、デジタルテレビジョン受信装置、ムービー装置、並びに携帯電話等としても有用である。
110、210、310 ストリーム分割器
132 パラメータ復号器
134、234、334、434 復号タイミング制御器
136、236、336 参照情報格納部
141~143、243、244、343~346 画像復号部
454 画像出力部

Claims (14)

  1.  画面内予測を行って動画像を符号化することによって得られた符号化データを有する入力ビットストリームを処理する画像復号装置であって、
     前記入力ビットストリームを複数の分割ストリームに分割するストリーム分割器と、
     前記複数の分割ストリームをそれぞれ復号する複数の画像復号部とを備え、
     前記ストリーム分割器は、前記動画像のマクロブロックに含まれる前記画面内予測における複数の予測単位のうち、1つ以上の予測単位の符号化データが前記複数の分割ストリームのそれぞれに含まれるように、前記入力ビットストリームを分割する
    画像復号装置。
  2.  請求項1に記載の画像復号装置において、
     前記複数の画像復号部のうちの少なくとも1つは、前記複数の画像復号部のうちの他の画像復号部の処理結果を参照して復号を行う
    画像復号装置。
  3.  請求項2に記載の画像復号装置において、
     前記複数の画像復号部の復号処理のタイミングを制御する復号タイミング制御器を更に備える
    画像復号装置。
  4.  請求項3に記載の画像復号装置において、
     前記複数の画像復号部は、前記復号タイミング制御器から処理を開始すべきことを通知されると、前記複数の画像復号部の間でデータの転送を行う
    画像復号装置。
  5.  請求項4に記載の画像復号装置において、
     前記複数の画像復号部の間で転送されるデータには、マクロブロック符号化情報が含まれる
    画像復号装置。
  6.  請求項2に記載の画像復号装置において、
     前記複数の画像復号部の処理結果を格納する参照情報格納部を更に備え、
     前記複数の画像復号部のうちの少なくとも1つは、前記他の画像復号部の処理結果を、前記参照情報格納部から読み出して用いる
    画像復号装置。
  7.  請求項2に記載の画像復号装置において、
     前記参照情報格納部は、少なくとも2つの領域を有しており、
     前記複数の画像復号部は、マクロブロックの処理毎に、前記参照情報格納部の2つの領域に交互に書き込みを行う
    画像復号装置。
  8.  請求項1に記載の画像復号装置において、
     前記複数の画像復号部で復号された画像を格納し、前記マクロブロックに含まれる全ての予測単位についての復号された画像が格納されると、当該マクロブロックについての復号された画像を出力する画像出力部を更に備える
    画像復号装置。
  9.  請求項1に記載の画像復号装置において、
     前記ストリーム分割器は、前記入力ビットストリームの解析を行い、前記解析の結果に従って前記入力ビットストリームを、復号することなく分割する
    画像復号装置。
  10.  請求項1に記載の画像復号装置において、
     前記ストリーム分割器は、前記複数の分割ストリームのそれぞれに前記マクロブロックの予測単位が1つのみ含まれるように、前記入力ビットストリームを分割する
    画像復号装置。
  11.  請求項1に記載の画像復号装置において、
     前記ストリーム分割器は、前記複数の分割ストリームのそれぞれに前記マクロブロックの予測単位が2つ以上含まれるように、前記入力ビットストリームを分割する
    画像復号装置。
  12.  請求項11に記載の画像復号装置において、
     前記ストリーム分割器は、前記動画像のカラーフォーマットが4:2:0であって、前記マクロブロックのそれぞれが前記複数の予測単位として2行2列の4つの輝度信号ブロック、1つの青色差信号ブロック、及び1つの赤色差信号ブロックを有する場合には、
     前記輝度信号ブロックのうちの第1行のブロックを前記複数の分割ストリームのうちの第1の分割ストリームとして、前記輝度信号ブロックのうちの第2行のブロックを前記複数の分割ストリームのうちの第2の分割ストリームとして、前記青色差信号ブロック及び前記赤色差信号ブロックを前記複数の分割ストリームのうちの第3の分割ストリームとして出力する
    画像復号装置。
  13.  請求項11に記載の画像復号装置において、
     前記ストリーム分割器は、前記動画像のカラーフォーマットが4:2:2であって、前記マクロブロックのそれぞれが前記複数の予測単位として2行2列の4つの輝度信号ブロック、2行1列の2つの青色差信号ブロック、及び2行1列の2つの赤色差信号ブロックを有する場合には、
     前記輝度信号ブロックのうちの第1行のブロックを前記複数の分割ストリームのうちの第1の分割ストリームとして、前記輝度信号ブロックのうちの第2行のブロックを前記複数の分割ストリームのうちの第2の分割ストリームとして、前記青色差信号ブロックのうちの第1行のブロック及び前記赤色差信号ブロックのうちの第1行のブロックを前記複数の分割ストリームのうちの第3の分割ストリームとして、前記青色差信号ブロックのうちの第2行のブロック及び前記赤色差信号ブロックのうちの第2行のブロックを前記複数の分割ストリームのうちの第4の分割ストリームとして出力する
    画像復号装置。
  14.  請求項11に記載の画像復号装置において、
     前記ストリーム分割器は、前記動画像のカラーフォーマットが4:4:4であって、前記マクロブロックのそれぞれが前記複数の予測単位として2行2列の4つの輝度信号ブロック、2行2列の4つの青色差信号ブロック、及び2行2列の4つの赤色差信号ブロックを有する場合には、
     前記輝度信号ブロックのうちの第1行のブロックを前記複数の分割ストリームのうちの第1の分割ストリームとして、前記輝度信号ブロックのうちの第2行のブロックを前記複数の分割ストリームのうちの第2の分割ストリームとして、前記青色差信号ブロックのうちの第1行のブロックを前記複数の分割ストリームのうちの第3の分割ストリームとして、前記青色差信号ブロックのうちの第2行のブロックを前記複数の分割ストリームのうちの第4の分割ストリームとして、前記赤色差信号ブロックのうちの第1行のブロックを前記複数の分割ストリームのうちの第5の分割ストリームとして、前記赤色差信号ブロックのうちの第2行のブロックを前記複数の分割ストリームのうちの第6の分割ストリームとして出力する
    画像復号装置。
PCT/JP2009/004761 2009-03-31 2009-09-18 画像復号装置 WO2010113227A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011506858A JP5275454B2 (ja) 2009-03-31 2009-09-18 画像復号装置
US13/246,503 US8971401B2 (en) 2009-03-31 2011-09-27 Image decoding device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-087249 2009-03-31
JP2009087249 2009-03-31

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/246,503 Continuation US8971401B2 (en) 2009-03-31 2011-09-27 Image decoding device

Publications (1)

Publication Number Publication Date
WO2010113227A1 true WO2010113227A1 (ja) 2010-10-07

Family

ID=42827560

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/004761 WO2010113227A1 (ja) 2009-03-31 2009-09-18 画像復号装置

Country Status (3)

Country Link
US (1) US8971401B2 (ja)
JP (1) JP5275454B2 (ja)
WO (1) WO2010113227A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130005233A (ko) * 2011-07-05 2013-01-15 한국전자통신연구원 영상 정보 부호화 방법 및 복호화 방법
CN104685875A (zh) * 2012-10-01 2015-06-03 高通股份有限公司 用于视频译码中的4:2:2样本格式的帧内译码
JP2015518342A (ja) * 2012-04-26 2015-06-25 ソニー株式会社 データ符号化及び復号化
KR20200139116A (ko) * 2011-07-05 2020-12-11 한국전자통신연구원 영상 정보 부호화 방법 및 복호화 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102957914B (zh) * 2008-05-23 2016-01-06 松下知识产权经营株式会社 图像解码装置、图像解码方法、图像编码装置、以及图像编码方法
US10841617B2 (en) 2018-11-27 2020-11-17 Semiconductor Components Industries, Llc Methods and apparatus for successive intra block prediction

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008020470A1 (en) * 2006-08-15 2008-02-21 Fujitsu Limited Decoding method and device
JP2009246539A (ja) * 2008-03-28 2009-10-22 Ibex Technology Co Ltd 符号化装置、符号化方法、符号化プログラム、復号化装置、復号化方法および復号化プログラム
WO2009142021A1 (ja) * 2008-05-23 2009-11-26 パナソニック株式会社 画像復号化装置、画像復号化方法、画像符号化装置、及び画像符号化方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4427827B2 (ja) * 1998-07-15 2010-03-10 ソニー株式会社 データ処理方法、データ処理装置及び記録媒体
JP2001218201A (ja) 2000-02-01 2001-08-10 Nippon Telegr & Teleph Corp <Ntt> 並列画像復号装置,並列画像復号方法および並列画像復号用プログラム記録媒体
US7263128B2 (en) * 2002-11-13 2007-08-28 Sony Corporation Triple-buffering method for overlapped motion compensation in a video decoder
CN100534193C (zh) * 2004-08-04 2009-08-26 松下电器产业株式会社 图像解码装置
JP4182442B2 (ja) * 2006-04-27 2008-11-19 ソニー株式会社 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
JP5042568B2 (ja) * 2006-09-07 2012-10-03 富士通株式会社 Mpegデコーダ及びmpegエンコーダ
JP2008072647A (ja) * 2006-09-15 2008-03-27 Toshiba Corp 情報処理装置、デコーダおよび再生装置の動作制御方法
JP2009038501A (ja) * 2007-07-31 2009-02-19 Toshiba Corp 復号化装置および復号方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008020470A1 (en) * 2006-08-15 2008-02-21 Fujitsu Limited Decoding method and device
JP2009246539A (ja) * 2008-03-28 2009-10-22 Ibex Technology Co Ltd 符号化装置、符号化方法、符号化プログラム、復号化装置、復号化方法および復号化プログラム
WO2009142021A1 (ja) * 2008-05-23 2009-11-26 パナソニック株式会社 画像復号化装置、画像復号化方法、画像符号化装置、及び画像符号化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHEN, T.W. ET AL.: "Architecture design of H.264/AVC decoder with hybrid task pipelining for high definition videos", PROC. OF IEEE INT. SYMP. ON CIRCUITS AND SYSTEMS, vol. 3, 23 May 2005 (2005-05-23), pages 2931 - 2934, XP010816206, DOI: doi:10.1109/ISCAS.2005.1465241 *
MEENDERINCK, C. ET AL.: "Parallel Scalability of VideoDecoders", DELFT UNIVERSITY COMPUTER ENGINEERING DEPARTMENT TECHNICAL REPORT CE-TR- 2008-03, 30 June 2008 (2008-06-30) *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200139116A (ko) * 2011-07-05 2020-12-11 한국전자통신연구원 영상 정보 부호화 방법 및 복호화 방법
KR102618513B1 (ko) 2011-07-05 2023-12-27 한국전자통신연구원 영상 정보 부호화 방법 및 복호화 방법
KR20230050289A (ko) * 2011-07-05 2023-04-14 한국전자통신연구원 영상 정보 부호화 방법 및 복호화 방법
KR102518242B1 (ko) 2011-07-05 2023-04-05 한국전자통신연구원 영상 정보 부호화 방법 및 복호화 방법
KR20130005233A (ko) * 2011-07-05 2013-01-15 한국전자통신연구원 영상 정보 부호화 방법 및 복호화 방법
KR20220123200A (ko) * 2011-07-05 2022-09-06 한국전자통신연구원 영상 정보 부호화 방법 및 복호화 방법
KR102438021B1 (ko) 2011-07-05 2022-08-30 한국전자통신연구원 영상 정보 부호화 방법 및 복호화 방법
KR20210148049A (ko) * 2011-07-05 2021-12-07 한국전자통신연구원 영상 정보 부호화 방법 및 복호화 방법
KR102333153B1 (ko) 2011-07-05 2021-12-01 한국전자통신연구원 영상 정보 부호화 방법 및 복호화 방법
KR102187246B1 (ko) 2011-07-05 2020-12-04 한국전자통신연구원 영상 정보 부호화 방법 및 복호화 방법
US9693058B2 (en) 2012-04-26 2017-06-27 Sony Corporation Filtering of prediction units according to intra prediction direction
US10674144B2 (en) 2012-04-26 2020-06-02 Sony Corporation Filtering of prediction units according to intra prediction direction
US10419750B2 (en) 2012-04-26 2019-09-17 Sony Corporation Filtering of prediction units according to intra prediction direction
JP2015518342A (ja) * 2012-04-26 2015-06-25 ソニー株式会社 データ符号化及び復号化
CN110225359B (zh) * 2012-10-01 2021-06-25 维洛媒体国际有限公司 用于视频译码中的4:2:2样本格式的帧内译码
CN110225359A (zh) * 2012-10-01 2019-09-10 维洛媒体国际有限公司 用于视频译码中的4:2:2样本格式的帧内译码
CN104685875B (zh) * 2012-10-01 2019-07-05 维洛媒体国际有限公司 用于视频译码的方法、设备、计算机可读存储媒体
JP2015534780A (ja) * 2012-10-01 2015-12-03 クゥアルコム・インコーポレイテッドQualcomm Incorporated ビデオコーディングにおける4:2:2サンプルフォーマットのためのイントラコーディング
CN104685875A (zh) * 2012-10-01 2015-06-03 高通股份有限公司 用于视频译码中的4:2:2样本格式的帧内译码

Also Published As

Publication number Publication date
JP5275454B2 (ja) 2013-08-28
JPWO2010113227A1 (ja) 2012-10-04
US20120027087A1 (en) 2012-02-02
US8971401B2 (en) 2015-03-03

Similar Documents

Publication Publication Date Title
JP6471786B2 (ja) 画像処理装置及び画像処理方法
JP6471787B2 (ja) 画像処理装置及び画像処理方法
JP5393736B2 (ja) 動画像符号化装置、動画像復号化装置、動画像符号化方法および動画像復号化方法
US8422803B2 (en) Image encoding device, image decoding device, image encoding method and image decoding method
JP5275454B2 (ja) 画像復号装置
US20150319444A1 (en) Video compression device, video decoding device, image compression device, image decoding device, imaging device, and program
JP2001285876A (ja) 画像符号化装置とその方法、ビデオカメラ、画像記録装置、画像伝送装置
JP4879269B2 (ja) 復号化方法及び装置
JP2006166308A (ja) 復号化装置及び復号化方法
JP2008289105A (ja) 画像処理装置およびそれを搭載した撮像装置
JP2007180862A (ja) 画像符号化装置および画像符号化方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09842584

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2011506858

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09842584

Country of ref document: EP

Kind code of ref document: A1