WO2012046435A1 - 画像処理装置、画像符号化方法および画像処理方法 - Google Patents

画像処理装置、画像符号化方法および画像処理方法 Download PDF

Info

Publication number
WO2012046435A1
WO2012046435A1 PCT/JP2011/005575 JP2011005575W WO2012046435A1 WO 2012046435 A1 WO2012046435 A1 WO 2012046435A1 JP 2011005575 W JP2011005575 W JP 2011005575W WO 2012046435 A1 WO2012046435 A1 WO 2012046435A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
unit
image
encoding
block
Prior art date
Application number
PCT/JP2011/005575
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=45927441&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO2012046435(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 US13/877,389 priority Critical patent/US9414059B2/en
Priority to JP2012537581A priority patent/JPWO2012046435A1/ja
Priority to CN201180046531.9A priority patent/CN103125119B/zh
Publication of WO2012046435A1 publication Critical patent/WO2012046435A1/ja

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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/43Hardware specially adapted for motion estimation or compensation
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the present invention provides a pipeline method for an encoded stream obtained by dividing an image into a plurality of encoding unit blocks having at least two types of sizes and encoding the image for each encoding unit block.
  • the present invention relates to an image processing apparatus that performs a plurality of processes.
  • An image encoding apparatus that encodes a moving image divides each picture constituting the moving image into a plurality of macroblocks (Macroblock, sometimes referred to as MB for short) each formed of 16 ⁇ 16 pixels. Then, the image encoding device encodes each macroblock in the raster scan order. The image encoding device generates an encoded stream by encoding and compressing a moving image. The image decoding device decodes this encoded stream for each macroblock in raster scan order, and reproduces each picture of the original moving image.
  • Macroblock sometimes referred to as MB for short
  • ITU-T H.264 is one of the conventional image encoding methods.
  • H.264 standards see, for example, Non-Patent Document 1).
  • the image decoding apparatus is the H.264 In order to decode an image encoded by the H.264 standard, first, an encoded stream is read. Then, the image decoding apparatus performs variable length decoding after decoding various header information. The image decoding apparatus performs inverse frequency conversion by inversely quantizing coefficient information obtained by variable length decoding. Thereby, a difference image is generated.
  • the image decoding apparatus performs in-plane prediction or motion compensation according to the macroblock type obtained by variable length decoding. Thereby, the image decoding apparatus generates a predicted image. Thereafter, the image decoding apparatus performs a reconstruction process by adding the difference image to the predicted image. Then, the image decoding apparatus decodes the decoding target image by performing a deblocking filter process on the reconstructed image.
  • the image decoding apparatus decodes the encoded image by performing the variable length decoding process to the deblocking filter process for each macroblock.
  • a technique for speeding up the decoding process a technique of executing the decoding process by pipeline processing in units of macroblocks is generally used (see, for example, Patent Document 1).
  • pipeline processing in units of macroblocks a series of processing from variable length decoding processing to deblocking filter processing is divided into several stages. And the process of each stage is performed in parallel.
  • FIG. 62 is an example of pipeline processing when the decoding processing described above is divided into five stages.
  • processing from the first stage to the fifth stage is sequentially performed on one macroblock. Then, the processes from the first stage to the fifth stage are simultaneously performed on a plurality of different macroblocks.
  • the image decoding apparatus performs variable length decoding on the encoded stream, and outputs encoded information such as a motion vector and coefficient information corresponding to each pixel data.
  • the image decoding apparatus performs inverse quantization and inverse frequency transform on the coefficient information obtained in the first stage, and generates a difference image.
  • the image decoding apparatus In the third stage, the image decoding apparatus generates a predicted image by performing motion compensation according to the macroblock type obtained by variable length decoding. In the fourth stage, the image decoding apparatus obtains either the motion compensated prediction image obtained in the third stage or the prediction image of the in-plane prediction processing performed in the fourth stage, and the difference image obtained in the second stage. Are used for reconfiguration processing. In the fifth stage, the image decoding apparatus performs deblocking filter processing.
  • the image decoding apparatus simultaneously processes a plurality of different macroblocks at each stage using pipeline processing. Thereby, the image decoding apparatus can implement parallel processing and speed up the decoding processing.
  • the time slot (TS) cycle of pipeline processing is determined by the processing cycle of the stage having the longest processing cycle. Therefore, if only the processing cycle of a certain stage becomes long, the other stages cannot start the processing of the next macroblock until the processing of the longest stage is completed. Therefore, useless space is generated. In order to operate the pipeline processing efficiently, it is important to configure each processing cycle constituting the pipeline processing to be as uniform as possible.
  • the image encoding apparatus As described above, the image encoding apparatus according to the H.264 standard encodes an image in units of macroblocks configured by 16 ⁇ 16 pixels. However, 16 ⁇ 16 pixels are not necessarily optimal as a unit of encoding. In general, as the image resolution increases, the correlation between adjacent blocks increases. Therefore, the compression efficiency can be further improved by increasing the encoding unit.
  • Non-patent Document 2 the conventional H.264.
  • the size of the encoding unit block corresponding to the H.264 standard is variable.
  • the image encoding apparatus according to this technique can also encode an image with a block larger than the conventional 16 ⁇ 16 pixels, and can appropriately encode an ultra-high-definition image.
  • an encoding unit (CU: Coding Unit) is defined as an encoding data unit.
  • This encoding unit is a data unit capable of switching between intra prediction for performing intra prediction and inter prediction for performing motion compensation, as in the case of a macroblock in the conventional encoding standard. Is defined as a typical block size.
  • the size of this encoding unit is any of 4 ⁇ 4 pixels, 8 ⁇ 8 pixels, 16 ⁇ 16 pixels, 32 ⁇ 32 pixels, 64 ⁇ 64 pixels, and 128 ⁇ 128 pixels.
  • the largest coding unit is referred to as a maximum coding unit (LCU).
  • the 64 ⁇ 64 pixel encoding unit includes 4096 pixel data.
  • the 128 ⁇ 128 pixel encoding unit includes 16384 pixel data. That is, the 128 ⁇ 128 pixel encoding unit includes four times as much data as the 64 ⁇ 64 pixel encoding unit.
  • FIG. 63 shows an example of a plurality of encoding units composed of 128 ⁇ 128 pixels and 64 ⁇ 64 pixels.
  • a frequency conversion unit (TU: Transform Unit) is further defined.
  • the frequency conversion unit is defined as a block size for frequency conversion. Specifically, the size of the frequency conversion unit is any of 4 ⁇ 4 pixels, 8 ⁇ 8 pixels, 16 ⁇ 16 pixels, 32 ⁇ 32 pixels, and 64 ⁇ 64 pixels.
  • a prediction unit is defined as a data unit for in-plane prediction or inter prediction.
  • the prediction unit is selected from various rectangular sizes of 4x4 pixels or more, such as 128x128 pixels, 64x128 pixels, 128x64 pixels, or 64x64 pixels, within the encoding unit.
  • Non-Patent Document 2 describes a technique for improving encoding efficiency by changing the size of an encoding unit, that is, a macroblock.
  • the pipeline processing shown in Patent Document 1 is applied to such a variable encoding unit, the required processing amount increases in proportion to the number of pixels included in the encoding unit. Similarly, the number of processing cycles increases.
  • FIG. 64 shows an example in which an encoded stream is decoded by pipeline processing of five stages.
  • CU0 is a 128 ⁇ 128 pixel encoding unit
  • CU1 to CU4 are 64 ⁇ 64 pixel encoding units.
  • CU0 is an encoding unit having a pixel number four times that of CU1 to CU4
  • the processing cycle of CU0 is four times that of other encoding units.
  • an object of the present invention is to provide an image processing apparatus that efficiently performs a plurality of processes in a pipeline manner on an encoded stream obtained by encoding an image with various encoding unit blocks.
  • an image processing apparatus divides an image into a plurality of encoding unit blocks having at least two sizes, and the image is encoded for each encoding unit block.
  • An image processing apparatus that performs a plurality of first processes in a pipeline manner on the encoded stream obtained by each of the plurality of first processes, and each of the plurality of first processes executes the first stream to the encoded stream.
  • a plurality of first processing units that perform the plurality of first processes in the pipeline method, and the encoded stream is divided into a plurality of first processing unit blocks each configured with a first size, And a control unit that controls the plurality of first processing units so that the plurality of first processes are executed for each first processing unit block.
  • the plurality of processing units perform a plurality of processes on the encoded stream in a pipeline manner based on one size. Therefore, the free time is reduced and the operation efficiency is improved.
  • the plurality of first processing units may perform the plurality of first processes for decoding the image on the encoded stream.
  • control unit divides the coding unit block constituting the coded stream, or collects two or more coding unit blocks constituting the coded stream to
  • the plurality of first processing units may be controlled such that the plurality of first processing unit blocks are divided and the plurality of first processes are executed for each first processing unit block.
  • a plurality of processing unit blocks are obtained from the plurality of coding unit blocks.
  • Each of the plurality of processing unit blocks has a single size. Therefore, the free time is reduced and the operation efficiency is improved.
  • control unit controls the plurality of first processing units such that each of the plurality of first processes is executed in a predetermined period for each of the plurality of first processing unit blocks. Also good.
  • control unit divides the image into the plurality of encoding unit blocks, each of which is a minimum unit that can be switched between inter-screen prediction and intra-screen prediction, and the image is encoded for each encoding unit block.
  • the encoded stream obtained as a result of the processing is divided into the plurality of first processing unit blocks, and the plurality of first processes are performed for each first processing unit block.
  • the unit may be controlled.
  • an image encoded with the encoding unit block so as to increase the encoding efficiency is processed with the processing unit block so as to increase the processing efficiency.
  • control unit divides the encoded stream into the plurality of first processing unit blocks each configured by the first size predetermined as the size of the largest encoding unit block,
  • the plurality of first processing units may be controlled such that the first processing is executed for each first processing unit block.
  • control unit includes the plurality of encoded streams each configured with the first size predetermined as a size of a maximum coding unit (Large Coding Unit) that is the largest coding unit block.
  • the plurality of first processing units may be controlled so that the plurality of first processes are executed for each first processing unit block.
  • the plurality of processing units perform a plurality of processes in a pipeline manner on the encoded stream based on a size predetermined by a standard or the like. Therefore, the free time is reduced and the operation efficiency is improved.
  • control unit divides the encoded stream into the plurality of first processing unit blocks each configured with the first size predetermined as the size of the largest frequency transform block, and The plurality of first processing units may be controlled such that the first processing is executed for each first processing unit block.
  • the plurality of first processing units include a plurality of second processing units that execute a plurality of second processes included in the plurality of first processes, and the control unit includes the plurality of first processing unit blocks. Is divided into a plurality of second processing unit blocks each configured with a second size smaller than the first size, and the plurality of second processings are executed for each second processing unit block. A plurality of second processing units may be controlled.
  • the plurality of first processing units include a plurality of second processing units that execute a plurality of second processes included in the plurality of first processes, and the control unit includes the plurality of first processing unit blocks.
  • the plurality of second processing unit blocks are divided into a plurality of second processing unit blocks each having a size equal to or smaller than the first size, and the plurality of second processes are performed so that the plurality of second processes are executed for each second processing unit block.
  • the unit may be controlled.
  • control unit divides the plurality of first processing unit blocks into the plurality of second processing unit blocks so that the luminance information and the color difference information are divided, and the plurality of second processing is the second processing unit.
  • the plurality of second processing units may be controlled so as to be executed for each processing unit block.
  • the plurality of first processing units include a motion compensation processing unit that performs motion compensation processing, and the control unit converts the plurality of first processing unit blocks into a third size smaller than the first size.
  • Each of the blocks is divided into a plurality of third processing unit blocks, and the motion compensation processing unit is controlled so that the motion compensation processing is executed for each third processing unit block.
  • the plurality of first processing unit blocks may be divided into the plurality of third processing unit blocks so that the information and the color difference information are included in one third processing unit block.
  • the plurality of first processing units include a motion compensation processing unit that performs a motion compensation process, and the control unit is configured to perform the prediction when a prediction block used for the motion compensation process is larger than the first size.
  • the block may be divided into a plurality of first processing unit blocks, and the motion compensation processing unit may be controlled so that the motion compensation processing is executed for each first processing unit block.
  • the plurality of first processing units include an in-plane prediction processing unit that performs in-plane prediction processing, and the control unit is configured such that a prediction block used for the in-plane prediction processing is larger than the first size.
  • the in-plane prediction processing unit may be controlled such that the prediction block is divided into a plurality of first processing unit blocks and the in-plane prediction processing is executed for each first processing unit block.
  • the plurality of first processing units include a deblocking filter processing unit that executes a deblocking filter process for removing coding distortion at a block boundary, and the control unit encodes the image.
  • the deblock filter processing unit may be controlled so that the deblock filter processing is executed for each frequency conversion block according to the order in which the frequency conversion processing is sometimes performed.
  • the deblocking filter process is executed with a small size. Therefore, the free time is reduced and the operation efficiency is improved.
  • An image encoding method is an image encoding method for encoding an image, wherein the image is divided into a plurality of encoding unit blocks having at least two types of sizes, and the image is An encoding process step for executing an encoding process for each encoding unit block, and a deblocking filter process for removing an encoding distortion at a block boundary included in the image on which the encoding process has been executed, An image encoding method including a deblocking filter processing step executed for one of a vertical boundary and a horizontal boundary for each predetermined data unit different from each coding unit block, and then executed for the other. Good.
  • the processing cycle of the deblocking filter process is flattened and the deblocking filter process is executed smoothly. Further, since the deblocking filter process is executed with a size suitable for the deblocking filter process, the processing efficiency is improved.
  • An image encoding method is an image encoding method for encoding an image, wherein the image is divided into a plurality of encoding unit blocks having at least two types of sizes, and the image is An encoding process step for executing an encoding process for each encoding unit block, and a deblocking filter for removing encoding distortion at a block boundary according to the order in which the encoding process is performed on the image
  • An image encoding method including a deblocking filter processing step for executing processing for each encoding unit block may be used.
  • An image encoding method is an image encoding method for encoding an image for each encoding unit block, and the encoding unit block included in the image is divided into a plurality of frequency transform blocks, A frequency conversion processing step for performing frequency conversion processing for each frequency conversion block on the coding unit block, and encoding of block boundaries according to the order in which the frequency conversion processing is performed on the coding unit block
  • An image coding method including a deblocking filter processing step for executing a deblocking filter process for removing distortion for each frequency transform block may be used.
  • the deblocking filter process is executed with a small size. Therefore, the free time is reduced and the operation efficiency is improved.
  • An image encoding method is an image encoding method for encoding an image for each encoding unit block, and the encoding unit block included in the image is divided into a plurality of frequency transform blocks, A frequency conversion processing step for performing frequency conversion processing for each frequency conversion block on the encoding unit block; encoding the encoding unit block on which the frequency conversion processing has been performed; and luminance information and color difference of the image
  • An image encoding method including an encoding process step of generating an encoded stream so that information is collected together for each frequency transform block may be used.
  • the image processing method provides an encoding obtained by dividing an image into a plurality of encoding unit blocks having at least two sizes and encoding the image for each encoding unit block.
  • Dividing the encoded stream into a plurality of first processing unit blocks each configured by a first size, and performing the plurality of first processes. May be executed for each first processing unit block.
  • the image processing method may include a control step for controlling the plurality of first processing steps.
  • the image processing apparatus is realized as an image processing method.
  • the program according to the present invention may be a program for causing a computer to execute the steps included in the image processing method.
  • the image processing method is realized as a program.
  • the integrated circuit according to the present invention provides an encoded stream obtained by dividing an image into a plurality of encoding unit blocks having at least two sizes and encoding the image for each encoding unit block.
  • an integrated circuit that performs a plurality of first processes in a pipeline manner, each of which executes any one of the plurality of first processes, thereby performing the pipeline method on the encoded stream.
  • the plurality of first processing units that perform the plurality of first processes and the encoded stream are divided into a plurality of first processing unit blocks each configured with a first size, and the plurality of first processes
  • An integrated circuit including a control unit that controls the plurality of first processing units so as to be executed for each processing unit block may be used.
  • the image processing apparatus is realized as an integrated circuit.
  • a plurality of processes are efficiently performed in a pipeline manner on an encoded stream obtained by encoding an image with various encoding unit blocks.
  • FIG. 1 is a configuration diagram illustrating a configuration of an image decoding apparatus according to Embodiment 1.
  • FIG. 2 is a configuration diagram illustrating a connection between the variable length decoding unit and the inverse quantization unit of the image decoding apparatus according to Embodiment 1.
  • FIG. 3A is a diagram showing a sequence according to the first embodiment.
  • FIG. 3B is a diagram showing a picture according to Embodiment 1.
  • FIG. 3C is a diagram illustrating an encoded stream according to Embodiment 1.
  • FIG. 4A is a diagram illustrating a first configuration example of the coding unit according to Embodiment 1.
  • FIG. 4B is a diagram illustrating a second configuration example of the coding unit according to Embodiment 1.
  • FIG. 5A is a diagram illustrating a first configuration example of the frequency conversion unit according to Embodiment 1.
  • FIG. 5B is a diagram illustrating a second configuration example of the frequency conversion unit according to Embodiment 1.
  • FIG. 6A is a diagram showing a header of the coding unit according to Embodiment 1.
  • FIG. 6B is a diagram illustrating a prediction unit according to Embodiment 1.
  • FIG. 7A is a diagram illustrating a configuration example of a plurality of coding units used for describing the operation according to Embodiment 1.
  • FIG. 7B is a diagram showing details of a plurality of encoding units used for explaining the operation according to Embodiment 1.
  • FIG. 8 is a flowchart showing the operation of the image decoding apparatus according to Embodiment 1.
  • FIG. 8 is a flowchart showing the operation of the image decoding apparatus according to Embodiment 1.
  • FIG. 9 is a flowchart showing decoding processing of the coding unit according to Embodiment 1.
  • FIG. 10 is a time chart showing the operation of the image decoding apparatus according to the first embodiment.
  • FIG. 11 is a time chart illustrating the operation of the image decoding apparatus according to the second embodiment.
  • FIG. 12 is a configuration diagram illustrating a configuration of an image decoding device according to the third embodiment.
  • FIG. 13 is a configuration diagram illustrating a configuration of a motion compensation unit according to the third embodiment.
  • FIG. 14 is a configuration diagram illustrating a configuration of the in-plane prediction unit according to the third embodiment.
  • FIG. 15 is a flowchart showing the operation of the motion compensation unit according to the third embodiment.
  • FIG. 10 is a time chart showing the operation of the image decoding apparatus according to the first embodiment.
  • FIG. 11 is a time chart illustrating the operation of the image decoding apparatus according to the second embodiment.
  • FIG. 12 is a configuration diagram illustrating a configuration of an image de
  • FIG. 16 is a diagram illustrating a relationship between a prediction unit and a reference image according to the third embodiment.
  • FIG. 17 is a diagram illustrating motion compensation processing of the divided blocks according to the third embodiment.
  • FIG. 18 is a diagram illustrating a relationship between the first divided block and the reference image according to the third embodiment.
  • FIG. 19 is a diagram illustrating a relationship between the second divided block and the reference image according to Embodiment 3.
  • FIG. 20 is a diagram illustrating a relationship between the third divided block and the reference image according to Embodiment 3.
  • FIG. 21 is a diagram illustrating a relationship between the fourth divided block and the reference image according to Embodiment 3.
  • FIG. 22 is a flowchart showing the operation of the in-plane prediction unit according to the third embodiment.
  • FIG. 22 is a flowchart showing the operation of the in-plane prediction unit according to the third embodiment.
  • FIG. 23 is a diagram illustrating in-plane prediction processing of a divided block according to Embodiment 3.
  • FIG. 24 is a time chart illustrating the operation of the image decoding apparatus according to the third embodiment.
  • FIG. 25 is a diagram illustrating an example of the order of deblocking filter processing according to the first embodiment.
  • FIG. 26 is a diagram illustrating a first example of the order of deblocking filter processing according to the fourth embodiment.
  • FIG. 27 is a diagram illustrating a second example of the order of deblocking filter processing according to the fourth embodiment.
  • FIG. 28 is a time chart illustrating the operation of the image decoding apparatus according to the fourth embodiment.
  • FIG. 29 is a configuration diagram showing the configuration of the image decoding apparatus according to the fifth embodiment.
  • FIG. 29 is a configuration diagram showing the configuration of the image decoding apparatus according to the fifth embodiment.
  • FIG. 30 is a configuration diagram illustrating a configuration of the in-plane prediction unit according to the fifth embodiment.
  • FIG. 31 is a diagram illustrating a configuration example of a plurality of coding units used for explaining the operation according to the fifth embodiment.
  • FIG. 32 is a flowchart showing the operation of the in-plane prediction unit according to the fifth embodiment.
  • FIG. 33 is a diagram illustrating a configuration example of a frequency conversion unit according to the sixth embodiment.
  • FIG. 34 is a time chart showing the operation of the image decoding apparatus according to the sixth embodiment.
  • FIG. 35 is a flowchart showing the operation of the variable length decoding unit according to Embodiment 6.
  • FIG. 36 is a flowchart showing the operation of the inverse quantization unit according to Embodiment 6.
  • FIG. 37 is a time chart showing the operation of the image decoding apparatus according to the seventh embodiment.
  • FIG. 38 is a block diagram showing the configuration of the image processing apparatus according to the eighth embodiment.
  • FIG. 39 is a flowchart showing the operation of the image processing apparatus according to the eighth embodiment.
  • FIG. 40 is a configuration diagram illustrating a configuration of an image processing device according to the ninth embodiment.
  • FIG. 41 is a flowchart showing the operation of the image processing apparatus according to the ninth embodiment.
  • FIG. 42 is a configuration diagram illustrating a configuration of the image processing device according to the tenth embodiment.
  • FIG. 43 is a flowchart showing the operation of the image processing apparatus according to the tenth embodiment.
  • FIG. 44 is a block diagram showing the configuration of the image processing apparatus according to the eleventh embodiment.
  • FIG. 44 is a block diagram showing the configuration of the image processing apparatus according to the eleventh embodiment.
  • FIG. 45 is a flowchart showing the operation of the image processing apparatus according to the eleventh embodiment.
  • FIG. 46 is a block diagram showing the configuration of the image processing apparatus according to the twelfth embodiment.
  • FIG. 47 is a flowchart showing the operation of the image processing apparatus according to the twelfth embodiment.
  • FIG. 48 is a configuration diagram showing the configuration of the image encoding device according to the thirteenth embodiment.
  • FIG. 49 is a flowchart showing an operation of the image coding apparatus according to the thirteenth embodiment.
  • FIG. 50 is a configuration diagram showing the configuration of the image encoding device according to the fourteenth embodiment.
  • FIG. 51 is a flowchart showing the operation of the image coding apparatus according to the fourteenth embodiment.
  • FIG. 52 is a configuration diagram illustrating a configuration of an image encoding device according to Embodiment 15.
  • FIG. 53 is a flowchart showing the operation of the image coding apparatus according to the fifteenth embodiment.
  • FIG. 54 is a diagram illustrating a configuration example of a frequency conversion unit according to the fifteenth embodiment.
  • FIG. 55 is an overall configuration diagram of a content supply system that implements a content distribution service.
  • FIG. 56 is an overall configuration diagram of a digital broadcasting system.
  • FIG. 57 is a block diagram illustrating a configuration example of a television.
  • FIG. 58 is a block diagram illustrating a configuration example of an information reproducing / recording unit that reads and writes information from and on a recording medium that is an optical disk.
  • FIG. 59 is a diagram illustrating a structure example of a recording medium that is an optical disk.
  • FIG. 60 is a configuration diagram illustrating a configuration example of an integrated circuit that implements image decoding processing.
  • FIG. 61 is a configuration diagram illustrating a configuration example of an integrated circuit that implements image decoding processing and image encoding processing.
  • FIG. 62 is an explanatory diagram showing pipeline processing according to the prior art.
  • FIG. 63 is an explanatory diagram of a variable-size block according to the related art.
  • FIG. 64 is an explanatory diagram showing an operation when pipeline processing is applied to a variable-size block according to the prior art.
  • expressions such as 128 ⁇ 128 pixels and 64 ⁇ 64 pixels mean sizes of 128 pixels ⁇ 128 pixels and 64 pixels ⁇ 64 pixels, respectively.
  • expressions such as blocks, data units, and coding units (CUs) each mean a grouped area. Each of them may mean an image area. Alternatively, they may each mean a data area in the encoded stream.
  • the image may be a moving image, a still image, a plurality of pictures constituting a moving image, a single picture, a part of a picture, or the like.
  • the image decoding apparatus decodes an encoded stream.
  • the size of the encoding unit constituting the encoded stream is variable.
  • the image decoding apparatus divides a plurality of processes included in the decoding process into a plurality of stages, and performs a plurality of processes in parallel by a pipeline method.
  • the image decoding apparatus performs a plurality of processes with the size of the maximum coding unit (LCU: Large Coding Unit).
  • LCU Large Coding Unit
  • the maximum encoding unit is the largest encoding unit among a plurality of encoding units constituting the encoded stream.
  • FIG. 1 is a configuration diagram of an image decoding apparatus according to the present embodiment.
  • the image decoding apparatus according to the present embodiment includes a control unit 501, a frame memory 502, a reconstructed image memory 509, a variable length decoding unit 503, an inverse quantization unit 504, an inverse frequency conversion unit 505, a motion compensation unit 506, an in-plane A prediction unit 507, a reconstruction unit 508, and a deblock filter unit 510 are provided.
  • the control unit 501 controls the whole.
  • the frame memory 502 is a memory for storing the decoded image data.
  • the reconstructed image memory 509 is a memory for storing a part of the generated reconstructed image.
  • the variable length decoding unit 503 reads the encoded stream and decodes the variable length code.
  • the inverse quantization unit 504 performs inverse quantization.
  • the inverse frequency conversion unit 505 performs inverse frequency conversion.
  • the motion compensation unit 506 reads a reference image from the frame memory 502, performs motion compensation, and generates a predicted image.
  • the in-plane prediction unit 507 reads a reference image from the reconstructed image memory 509, performs in-plane prediction (also referred to as intra prediction), and generates a predicted image.
  • the reconstruction unit 508 generates a reconstructed image by adding the difference image and the predicted image, and stores a part of the reconstructed image in the reconstructed image memory 509.
  • the deblocking filter unit 510 removes block noise from the reconstructed image and improves the quality of the reconstructed image.
  • FIG. 2 is a configuration diagram showing the connection between the variable length decoding unit 503 and the inverse quantization unit 504.
  • the same components as those in FIG. 1 are assigned the same reference numerals and description thereof is omitted.
  • the variable length decoding unit 503 and the inverse quantization unit 504 of the present embodiment are configured to be connected to each other via a memory 511 for storing coefficients.
  • FIG. 2 shows only the connection between the variable length decoding unit 503 and the inverse quantization unit 504, but the processing units shown in FIG. 1 are connected with the same configuration.
  • the encoded stream decoded by the image decoding apparatus according to the present embodiment includes an encoding unit (CU), a frequency conversion unit (TU), and a prediction unit (PU).
  • CU encoding unit
  • TU frequency conversion unit
  • PU prediction unit
  • the coding unit (CU) is a data unit set with a size of 128 ⁇ 128 pixels to 8 ⁇ 8 pixels and capable of switching between in-plane prediction and inter prediction.
  • the frequency conversion unit (TU) is set to a size of 64 ⁇ 64 pixels to 4 ⁇ 4 pixels inside the encoding unit (CU).
  • the prediction unit (PU) is set with a size of 128 ⁇ 128 pixels to 4 ⁇ 4 pixels inside the encoding unit (CU), and has an intra-prediction mode or an inter prediction motion vector.
  • FIGS. 3A to 6B the configuration of the encoded stream will be described with reference to FIGS. 3A to 6B.
  • FIG. 3A and 3B show a hierarchical configuration of an encoded stream decoded by the image decoding apparatus according to the present embodiment.
  • a group of a plurality of pictures is called a sequence.
  • each picture is divided into slices, and each slice is further divided into coding units (CUs).
  • CUs coding units
  • the size of the maximum coding unit (LCU) is 128 ⁇ 128 pixels. Also, a 128 ⁇ 128 pixel encoding unit (CU) and a 64 ⁇ 64 pixel encoding unit (CU) are mixed.
  • FIG. 3C is a diagram showing an encoded stream according to the present embodiment.
  • the data shown in FIGS. 3A and 3B is hierarchically encoded, whereby the encoded stream shown in FIG. 3C is obtained.
  • the encoded stream shown in FIG. 3C includes a sequence header for controlling a sequence, a picture header for controlling a picture, a slice header for controlling a slice, and encoded unit layer data (CU layer data).
  • a sequence header is called SPS (Sequence Parameter Set)
  • a picture header is called PPS (Picture Parameter Set).
  • the encoded stream includes a CU division flag and CU data.
  • this CU division flag is “1”, it indicates that the block is divided into four, and when it is “0”, it indicates that the block is not divided into four.
  • the CU partition flag is “0”.
  • the first CU division flag is “1”.
  • This first CU partition flag indicates that a block of 128 ⁇ 128 pixels is divided into four blocks of at least 64 ⁇ 64 pixels. Since each of the four blocks of 64 ⁇ 64 pixels is not divided, the subsequent CU division flag is “0”. In this way, the size of the encoding unit is specified as any of 128 ⁇ 128 pixels to 4 ⁇ 4 pixels by the CU partition flag.
  • FIG. 5A and FIG. 5B each show a configuration example of the frequency conversion unit according to the present embodiment.
  • the CU data of each coding unit further includes a CU header, a TU partition flag, and coefficient information.
  • the CU header will be described later.
  • the TU partition flag indicates the size of the frequency conversion unit in the coding unit, and indicates whether or not the size is hierarchically divided into four, similarly to the CU partition flag.
  • FIG. 5A shows an example in which a 128 ⁇ 128 pixel encoding unit is composed of four frequency conversion units of 64 ⁇ 64 pixels.
  • the maximum frequency conversion unit is 64 ⁇ 64 pixels, it is always divided into four.
  • each 64 ⁇ 64 pixel block is not divided. Therefore, the TU partition flags are all “0”.
  • FIG. 5B shows an example in which an encoding unit of 128 ⁇ 128 pixels includes three frequency conversion units of 64 ⁇ 64 pixels and four frequency conversion units of 32 ⁇ 32 pixels. In this case, there is a TU partition flag having a value of “1”.
  • Each frequency conversion unit shown in FIGS. 5A and 5B includes luminance data (luminance information) and color difference data (color difference information). That is, coefficient information including both luminance data and color difference data is collected for each frequency conversion unit in the encoded stream.
  • the CU header includes a CU type, and further includes a motion vector or an in-plane prediction mode.
  • the size of the prediction unit is determined by the CU type.
  • FIG. 6B shows a 128 ⁇ 128 pixel, 64 ⁇ 128 pixel, 128 ⁇ 64 pixel, and 64 ⁇ 64 pixel prediction unit.
  • the size of the prediction unit can be selected from sizes of 4 ⁇ 4 pixels or more.
  • the prediction unit may be rectangular.
  • a motion vector or an in-plane prediction mode is designated for each prediction unit.
  • 7A and 7B show a configuration example of a plurality of encoding units used for explanation of the operation. Eight coding units (CU0 to CU7) shown in FIG. 7A are used for explaining the operation.
  • CU0 and CU5 to CU7 are encoding units each composed of 128 ⁇ 128 pixels.
  • CU1 to CU4 are coding units configured by 64 ⁇ 64 pixels.
  • the size of the frequency conversion unit of CU4 is 32 ⁇ 32 pixels. All the other frequency conversion units have a size of 64 ⁇ 64 pixels.
  • the size of the prediction unit of CU0 is 128 ⁇ 128 pixels
  • the size of the prediction units of CU1 to CU4 is 64 ⁇ 64 pixels
  • the size of the prediction units of CU5 to CU7 is 128 ⁇ 128 pixels.
  • FIG. 8 is a flowchart showing the decoding operation of one sequence included in the encoded stream.
  • the image decoding apparatus first decodes the sequence header (S901).
  • the variable length decoding unit 503 decodes the encoded stream based on the control of the control unit 501.
  • the image decoding apparatus similarly decodes the picture header (S902) and decodes the slice header (S903).
  • the image decoding apparatus decodes the encoding unit (S904).
  • the decoding of the encoding unit will be described in detail later.
  • the image decoding apparatus determines whether or not the decoded coding unit is the last coding unit in the slice (S905). If the decoded coding unit is not the last coding unit of the slice, the image decoding apparatus again decodes the next coding unit (S904).
  • the image decoding apparatus determines whether or not the slice including the decoded encoding unit is the last slice of the picture (S906). If it is not the last slice of the picture, the image decoding apparatus decodes the slice header again (S903).
  • the image decoding apparatus determines whether or not the picture including the decoded encoding unit is the last picture in the sequence (S907). If the picture is not the last picture in the sequence, the image decoding apparatus decodes the picture header again (S902). After decoding all the pictures in the sequence, the image decoding apparatus ends a series of decoding operations.
  • FIG. 9 is a flowchart showing the decoding operation of one encoding unit.
  • variable length decoding unit 503 performs variable length decoding on the processing target encoding unit included in the input encoded stream (S1001).
  • the variable length decoding unit 503 outputs coding information such as a coding unit type, an intra prediction (intra prediction) mode, motion vector information, and a quantization parameter, and corresponds to each pixel data.
  • Output coefficient information The encoded information is output to the control unit 501 and then input to each processing unit.
  • the coefficient information is output to the next inverse quantization unit 504.
  • the inverse quantization unit 504 performs an inverse quantization process (S1002).
  • the inverse frequency transform unit 505 performs inverse frequency transform to generate a difference image (S1003).
  • the control unit 501 determines whether inter prediction or in-plane prediction is used for the processing target encoding unit (S1004).
  • the motion compensation unit 506 is activated by the control unit 501, and the motion compensation unit 506 generates a prediction image with 1/2 pixel accuracy or 1/4 pixel accuracy (S1005).
  • the in-plane prediction unit 507 is activated by the control unit 501, the in-plane prediction unit 507 performs the in-plane prediction process, and the predicted image is obtained.
  • Generate S1006.
  • the reconstruction unit 508 generates a reconstructed image by adding the prediction image output from the motion compensation unit 506 or the in-plane prediction unit 507 and the difference image output from the inverse frequency conversion unit 505 (S1007).
  • the generated reconstructed image is input to the deblock filter unit 510.
  • the portion used in the in-plane prediction is stored in the reconstructed image memory 509.
  • the deblock filter unit 510 performs deblock filter processing for reducing block noise on the obtained reconstructed image.
  • the deblock filter unit 510 stores the result in the frame memory 502 (S1008). This completes the decoding operation of the encoding unit.
  • each process shown in the flowchart shown in FIG. 9 is divided into a plurality of stages as shown by dotted lines in FIG.
  • the image decoding apparatus simultaneously performs a plurality of processes on a plurality of maximum encoding units that are different for each stage.
  • parallel processing is realized and performance is improved.
  • Such processing is called pipeline processing.
  • the first stage includes a variable length decoding process (S1001).
  • the second stage includes an inverse quantization process (S1002) and an inverse frequency conversion process (S1003).
  • the third stage includes a motion compensation process (S1005).
  • the fourth stage includes in-plane prediction processing (S1006) and reconstruction processing (S1007).
  • the fifth stage includes deblock filter processing (S1008).
  • the plurality of processes divided into the plurality of stages are executed in a pipeline manner with respect to a plurality of maximum encoding units that are different from one another for each stage.
  • Each processing unit included in the image decoding apparatus according to the present embodiment performs processing on all the encoding units in the maximum encoding unit in one stage.
  • each processing unit when there is only one encoding unit of 128 ⁇ 128 pixels in the maximum encoding unit of 128 ⁇ 128 pixels, each processing unit performs processing of one encoding unit in one stage. When there are four encoding units of 64 ⁇ 64 pixels in the maximum encoding unit of 128 ⁇ 128 pixels, each processing unit performs processing on all four encoding units in one stage.
  • FIG. 10 is a diagram showing time-series operations of the image decoding apparatus according to the present embodiment.
  • FIG. 10 shows an operation when a plurality of processes are divided into a plurality of stages as shown in FIG. 9 and a plurality of encoding units are configured as shown in FIG. 7A.
  • the third stage motion compensation process (S1005) is performed for CU0, and the second stage inverse quantization process (S1002) and the inverse frequency transform process (S1003) are performed for CU1 to CU4. Is called.
  • the first stage variable length decoding process (S1001) is performed on CU5.
  • the fourth stage in-plane prediction process (S1006) and the reconstruction process (S1007) are performed for CU0, and the third stage motion compensation process (S1005) is performed for CU1 to CU4.
  • the second stage inverse quantization process (S1002) and the inverse frequency transform process (S1003) are performed on CU5, and the first stage variable length decoding process (S1001) is performed on CU6.
  • the fifth stage deblocking filter processing (S1008) is performed on CU0, and the fourth stage in-plane prediction processing (S1006) and reconstruction processing (S1007) are performed on CU1 to CU4. Is called.
  • a third stage motion compensation process (S1005) is performed on CU5, and a second stage inverse quantization process (S1002) and an inverse frequency transform process (S1003) are performed on CU6.
  • the first stage variable length decoding process (S1001) is performed on CU7. As a result, all the decoding processes of CU0 are completed.
  • the fifth stage deblocking filter processing (S1008) is performed on CU1 to CU4, and the fourth stage in-plane prediction processing (S1006) and reconstruction processing (S1007) are performed on CU5. Is called.
  • a third stage motion compensation process (S1005) is performed on CU6, and a second stage inverse quantization process (S1002) and an inverse frequency conversion process (S1003) are performed on CU7.
  • the variable length decoding process (S1001) in the first stage is performed on the CU8. As a result, all the decoding processes of CU1 to CU4 are completed.
  • the deblock filter processing according to the present embodiment is executed in the order of the numbers shown in FIG. Specifically, the deblocking filter process is first performed on the vertical boundary, and then the deblocking filter process is performed on the horizontal boundary.
  • the deblock filter processing is executed for all the vertical boundaries of CU1 to CU4, not to the order of CU1, CU2, CU3, and CU4, the deblock filter processing is performed for all the horizontal boundaries of CU1 to CU4. Is executed.
  • the amount of data processed in each stage of the pipeline is constant as compared with FIG. 64 showing the conventional operation. For this reason, the processing idle time is reduced, and the pipeline processing is efficiently executed.
  • variable length decoding processing (S1001) of CU0 is performed.
  • CU0 inverse quantization processing (S1002) is performed, and at the same time, variable length decoding processing (S1001) of CU1 to CU4 is performed.
  • variable length decoding unit 503 writes the result of the variable length decoding processing of CU1 to CU4 in the memory 511.
  • the memory 511 needs at least a memory capacity that can store data necessary for processing of the maximum coding unit.
  • variable length decoding unit 503 and the inverse quantization unit 504 have been described, a similar memory may be arranged between other processing units.
  • a similar memory may be arranged in the control unit 501.
  • the image decoding apparatus shown in the present embodiment executes pipeline processing in units of data of the maximum coding unit. Thereby, the amount of data processed in each stage becomes constant. Therefore, the processing time of each stage of the pipeline is constant. Therefore, the pipeline processing is executed efficiently. As a result, the processing performance is improved. In addition, since the circuit operates efficiently, power consumption can be reduced.
  • the name “encoding unit” is used as a data unit used for encoding.
  • the data unit used for encoding may be a macroblock.
  • a data unit used for encoding may be called a super macroblock.
  • Non-Patent Document 2 the encoding method shown in Non-Patent Document 2 is used. And in this Embodiment, an example of the content of each process is shown. However, the content of each process is not limited to the example of this embodiment.
  • the maximum encoding unit size is 128 ⁇ 128 pixels.
  • the size of the maximum coding unit may be any size.
  • the size of the encoding unit is 128 ⁇ 128 pixels to 8 ⁇ 8 pixels.
  • the size of the encoding unit may be other sizes.
  • the configuration of the pipeline processing shown in the present embodiment is an example. It is not always necessary to divide a plurality of processes into a plurality of stages as in this embodiment. For example, some processes may be realized in one stage, and one process may be divided into several stages.
  • variable length code is used.
  • the encoding method of the variable length code may be any encoding method such as a Huffman code, a run length code, or an arithmetic code.
  • each processing unit a part or all of the processing units may be realized by a circuit using dedicated hardware, or may be realized by a program on a processor.
  • the frame memory 502, the reconstructed image memory 509, and the memory 511 are not limited to memories, and may be storage elements that can store data. For example, these may be other configurations such as flip-flops or registers. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used for these.
  • the reconstructed image memory 509 is explicitly shown. However, the memory in each processing unit may be used as the reconstructed image memory 509, or the frame memory 502 may be used as the reconstructed image memory 509.
  • pipeline processing is not limited to decoding processing.
  • An encoding process that is the reverse process of the decoding process may be executed in a pipeline manner for each maximum encoding unit, as in the present embodiment. Thereby, the pipeline processing is efficiently executed as in the present embodiment.
  • the CU partition flag is present at the head of the divided block.
  • the CU division flag is not necessarily present at such a position, and may be present in the encoded stream.
  • the CU partition flag may be present at the beginning of the maximum coding unit (LCU).
  • the TU partition flag is present at the head of each coefficient information.
  • the TU partition flag is not necessarily present at such a position, and may be present in the encoded stream.
  • the TU partition flag may exist at the head of the encoding unit or the maximum encoding unit.
  • processing is switched for each time slot.
  • the process does not necessarily have to be switched in a fixed time.
  • the next process may be started. Further, the processing does not have to be switched simultaneously in each stage.
  • the image decoding apparatus decodes an encoded stream.
  • the size of the encoding unit constituting the encoded stream is variable.
  • the image decoding apparatus divides a plurality of processes included in the decoding process into a plurality of stages, and performs a plurality of processes in parallel by a pipeline method.
  • the image decoding apparatus performs a plurality of processes with the size of the frequency conversion unit.
  • the frequency conversion unit is a data unit for performing frequency conversion. Further, the frequency conversion unit is included in an encoding unit that forms an encoded stream. Each frequency conversion unit in the encoded stream includes luminance data (luminance information) and color difference data (color difference information).
  • the amount of processing data in each of the plurality of processes constituting the pipeline processing is equal regardless of the size of each encoding unit. Therefore, free time in pipeline processing is reduced, and pipeline processing is performed efficiently. Therefore, performance is improved.
  • the memory capacity between the processing units can be reduced as compared with the first embodiment.
  • FIG. 1 is a configuration diagram of an image decoding apparatus according to the present embodiment. Since the configuration of the image decoding apparatus according to the present embodiment is the same as that of Embodiment 1, description thereof is omitted.
  • FIG. 2 is a configuration diagram showing the connection between the variable length decoding unit 503 and the inverse quantization unit 504. Since the connection configuration is the same as that of the first embodiment, description thereof is omitted.
  • the difference between the present embodiment and the first embodiment is the difference in the operation timing of each stage of the flowchart shown in FIG.
  • FIG. 11 shows time-series operations of the image decoding apparatus according to the present embodiment.
  • FIG. 11 shows processing operations for the plurality of encoding units shown in FIG. 7A.
  • the upper left area is called CU0a
  • the upper right area is called CU0b
  • the lower left area is called CU0c
  • the lower right area is called The area is called CU0d.
  • the third stage motion compensation process (S1005) is performed for CU0, and the second stage inverse quantization process (S1002) and the inverse frequency conversion process (S1003) are performed for CU0b.
  • the first stage variable length decoding process (S1001) is performed on CU0c.
  • the first stage variable length decoding process (S1001) is performed on CU0d.
  • the first stage variable length decoding process (S1001) is performed on CU1.
  • the first stage variable length decoding process (S1001) is performed on CU2.
  • the fourth stage in-plane prediction process (S1006) and the reconstruction process (S1007) are performed for CU0, and the third stage motion compensation process (S1005) is performed for CU1.
  • the second stage inverse quantization process (S1002) and the inverse frequency transform process (S1003) are performed on CU2, and the first stage variable length decoding process (S1001) is performed on CU3.
  • the size of the frequency conversion unit is always 64 ⁇ 64 pixels or less. Then, an encoded stream is sequentially formed in a data unit of 64 ⁇ 64 pixels. Therefore, pipeline processing is executed in units of 64 ⁇ 64 pixel data, which is the maximum size of the frequency conversion unit.
  • the amount of data processed in each stage of the pipeline is constant as compared with FIG. 64 showing the conventional operation. For this reason, the processing idle time is reduced, and the pipeline processing is efficiently executed.
  • the variable length decoding unit 503 writes the result of the variable length decoding process of CU0b in the memory 511.
  • the memory 511 only needs to have a memory capacity capable of storing a data unit for executing pipeline processing.
  • the data unit of the present embodiment is the largest frequency conversion unit, and the size thereof is 64 ⁇ 64 pixels. That is, the memory capacity according to the present embodiment may be smaller than that of the first embodiment in which the data unit is the maximum encoding unit of 128 ⁇ 128 pixels.
  • variable length decoding unit 503 and the inverse quantization unit 504 has been described, but a similar memory may be arranged between other processing units. A similar memory may be arranged in the control unit 501. Further, in the present embodiment, after the third stage motion compensation, the maximum coding unit constitutes a pipeline. Therefore, for these processes, as in the first embodiment, a memory capacity that can store data necessary for the process of the maximum encoding unit of at least 128 ⁇ 128 pixels is required.
  • the image decoding apparatus shown in the present embodiment executes pipeline processing in units of data of the largest frequency conversion unit.
  • Each frequency conversion unit shown in FIGS. 5A and 5B includes luminance data (luminance information) and color difference data (color difference information). Therefore, it is possible to configure a pipeline with data units of 64 ⁇ 64 pixels, which is the size of the largest frequency conversion unit, as shown in FIG. 11 without separating luminance data and color difference data. That is, even when a 128 ⁇ 128 pixel encoding unit and a 64 ⁇ 64 pixel encoding unit coexist, the amount of data processed in each stage is constant.
  • the pipeline processing is executed by the largest frequency conversion unit as compared with the first embodiment.
  • the largest frequency transform unit is smaller than the largest coding unit. Accordingly, the memory capacity between the processing units can be reduced, and the circuit scale can be reduced.
  • the name “encoding unit” is used as a data unit used for encoding.
  • the data unit used for encoding may be a macroblock.
  • a data unit used for encoding may be called a super macroblock.
  • Non-Patent Document 2 the encoding method shown in Non-Patent Document 2 is used. And in this Embodiment, an example of the content of each process is shown. However, the content of each process is not limited to the example of this embodiment.
  • the maximum encoding unit size is 128 ⁇ 128 pixels.
  • the size of the maximum coding unit may be any size.
  • the size of the encoding unit is 128 ⁇ 128 pixels to 8 ⁇ 8 pixels.
  • the size of the encoding unit may be other sizes.
  • the configuration of the pipeline processing shown in the present embodiment is an example. It is not always necessary to divide a plurality of processes into a plurality of stages as in this embodiment. For example, some processes may be realized in one stage, and one process may be divided into several stages.
  • variable length code is used.
  • the encoding method of the variable length code may be any encoding method such as a Huffman code, a run length code, or an arithmetic code.
  • each processing unit a part or all of the processing units may be realized by a circuit using dedicated hardware, or may be realized by a program on a processor.
  • the frame memory 502, the reconstructed image memory 509, and the memory 511 are not limited to memories, and may be storage elements that can store data. For example, these may be other configurations such as flip-flops or registers. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used for these.
  • pipeline processing is executed in units of 64 ⁇ 64 pixel data, which is the largest frequency conversion unit size.
  • the data unit is not necessarily limited to 64 ⁇ 64 pixels.
  • the frequency conversion process is executed using all data included in one data unit. Therefore, it is difficult to divide the frequency conversion unit. Therefore, in the present embodiment, the size of the largest frequency conversion unit is selected. However, if it is difficult to divide the data unit used for the process other than the frequency conversion process, the pipeline process may be executed for the data unit used for the process.
  • the reconstructed image memory 509 is explicitly shown. However, the memory in each processing unit may be used as the reconstructed image memory 509, or the frame memory 502 may be used as the reconstructed image memory 509.
  • the existence of a skip block in which the code amount of the encoding unit is zero is not shown.
  • the image decoding apparatus according to the present embodiment may execute pipeline processing with the largest frequency conversion unit size.
  • pipeline processing is not limited to decoding processing.
  • An encoding process that is the reverse of the decoding process may be executed in a pipeline manner for each largest frequency conversion unit, as in the present embodiment. Thereby, the pipeline processing is efficiently executed as in the present embodiment.
  • the CU partition flag is present at the head of the divided block.
  • the CU division flag is not necessarily present at such a position, and may be present in the encoded stream.
  • the CU partition flag may be present at the beginning of the maximum coding unit (LCU).
  • the TU partition flag is present at the head of each coefficient information.
  • the TU partition flag is not necessarily present at such a position, and may be present in the encoded stream.
  • the TU partition flag may exist at the head of the encoding unit or the maximum encoding unit.
  • processing is switched for each time slot.
  • the process does not necessarily have to be switched in a fixed time.
  • the next process may be started. Further, the processing does not have to be switched simultaneously in each stage.
  • the image decoding apparatus decodes an encoded stream.
  • the size of the encoding unit constituting the encoded stream is variable.
  • the image decoding apparatus divides a plurality of processes included in the decoding process into a plurality of stages, and performs a plurality of processes in parallel by a pipeline method.
  • the image decoding apparatus performs a plurality of processes with the size of the frequency conversion unit.
  • the frequency conversion unit is a data unit for performing frequency conversion. Further, the frequency conversion unit is included in an encoding unit that forms an encoded stream.
  • the image decoding apparatus divides the prediction unit used for the motion compensation process or the in-plane prediction process by the size of the frequency conversion unit.
  • FIG. 12 is a configuration diagram of the image decoding apparatus according to the present embodiment.
  • the same components as those of the first embodiment shown in FIG. 1 are assigned the same reference numerals, and the description thereof is omitted.
  • the image decoding apparatus according to the present embodiment includes a motion compensation unit 520 and an in-plane prediction unit 521.
  • the motion compensation unit 520 performs motion compensation processing by dividing the prediction unit with a size equal to or smaller than the size of the largest frequency conversion unit.
  • the in-plane prediction unit 521 performs the in-plane prediction process by dividing the prediction unit with a size equal to or smaller than the size of the largest frequency conversion unit.
  • FIG. 2 is a configuration diagram showing the connection between the variable length decoding unit 503 and the inverse quantization unit 504. Since the connection configuration is the same as that of the first embodiment, description thereof is omitted.
  • FIG. 13 shows the configuration of the motion compensation unit 520 of FIG.
  • the same reference numerals are assigned to the same components as those shown in FIG.
  • the motion compensation unit 520 includes a motion compensation block division unit 601, a reference image acquisition unit 602, and a motion compensation calculation unit 603.
  • the motion compensation block dividing unit 601 divides the prediction unit.
  • the reference image acquisition unit 602 acquires a reference image from the frame memory 502.
  • the motion compensation calculation unit 603 performs motion compensation processing.
  • FIG. 14 shows the configuration of the in-plane prediction unit 521 in FIG.
  • the same reference numerals are assigned to the same components as those shown in FIG.
  • the in-plane prediction unit 521 includes an in-plane prediction block division unit 701, a reconstructed image acquisition unit 702, and an in-plane prediction calculation unit 703.
  • the in-plane prediction block dividing unit 701 divides a prediction unit.
  • the reconstructed image acquisition unit 702 acquires a reconstructed image from the reconstructed image memory 509.
  • the in-plane prediction calculation unit 703 performs in-plane prediction processing.
  • the motion compensation block dividing unit 601 determines whether or not the prediction unit is larger than 64 ⁇ 64 pixels (S1100).
  • the prediction unit is not larger than 64 ⁇ 64 pixels (No in S1100)
  • the same process as the normal motion compensation process is executed. That is, the reference image acquisition unit 602 acquires a reference image (S1105), and the motion compensation calculation unit 603 performs motion compensation calculation (S1106).
  • the motion compensation block dividing unit 601 divides the prediction unit into a plurality of 64 ⁇ 64 pixel divided blocks (S1101).
  • the reference image acquisition unit 602 acquires a reference image for each divided block (S1102).
  • the motion compensation computation unit 603 performs motion compensation computation for each divided block (S1103).
  • the motion compensation block dividing unit 601 determines whether there is an unprocessed divided block (S1104).
  • the reference image acquisition unit 602 acquires a reference image (S1102), and the motion compensation calculation unit 603 performs motion compensation calculation (S1103).
  • the motion compensation unit 520 ends the process.
  • FIG. 16 shows a motion compensation operation when the prediction unit is 128 ⁇ 128 pixels.
  • the prediction unit of the encoding unit of the decoding target picture has a size of 128 ⁇ 128 pixels, and the motion vector is v.
  • the motion compensation process a block of 128 ⁇ 128 pixels indicated by a motion vector is used as a reference image in a reference picture.
  • the motion compensation block dividing unit 601 divides the prediction unit into four divided blocks of 64 ⁇ 64 pixels, which is the size of the largest frequency conversion unit shown in the second embodiment.
  • the motion vector of each divided block may be the same as the motion vector of the prediction unit of 128 ⁇ 128 pixels. That is, all the motion vectors of each divided block may be v.
  • a block located at the upper left of the prediction unit is called CU0a
  • a block located at the upper right is called CU0b
  • a block located at the lower left is called CU0c
  • a block located at the lower right is called CU0d.
  • the reference image acquisition unit 602 acquires an image specified by the position of CU0a, the motion vector of CU0a, and the reference index from the frame memory 502.
  • the motion vector of CU0a is v. Therefore, as shown in FIG. 18, the acquired reference image is the upper left 64 ⁇ 64 pixel block included in the 128 ⁇ 128 pixel block which is the reference image for the prediction unit of the original 128 ⁇ 128 pixel size.
  • the reference image acquisition unit 602 acquires the 64 ⁇ 64 pixel block from the frame memory 502.
  • the motion compensation calculation unit 603 After completing the acquisition of the reference image, the motion compensation calculation unit 603 performs motion compensation for the CU0a and generates a predicted image. When the motion vector indicates a decimal pixel position, the motion compensation calculation unit 603 performs a filtering process on the acquired reference image to generate a predicted image. When the motion vector indicates an integer pixel position, the motion compensation calculation unit 603 outputs the acquired reference image as it is as a predicted image. Thus, the motion compensation of CU0a is completed.
  • the reference image acquisition unit 602 acquires a reference image used for motion compensation of the CU0b from the frame memory 502.
  • the motion vector of CU0b is v. Therefore, as shown in FIG. 19, the acquired reference image is the upper right 64 ⁇ 64 pixel block included in the 128 ⁇ 128 pixel block which is the reference image for the prediction unit of the original 128 ⁇ 128 pixel size.
  • the motion compensation calculation unit 603 performs motion compensation for CU0b to generate a predicted image. This completes the motion compensation of CU0b.
  • the reference image acquisition unit 602 acquires a reference image used for motion compensation of the CU0c from the frame memory 502.
  • the motion vector of CU0c is v. Therefore, as illustrated in FIG. 20, the acquired reference image is the lower left 64 ⁇ 64 pixel block included in the 128 ⁇ 128 pixel block which is the reference image for the prediction unit of the original 128 ⁇ 128 pixel size.
  • the motion compensation calculation unit 603 performs motion compensation for the CU0c to generate a predicted image. This completes the motion compensation of CU0c.
  • the reference image acquisition unit 602 acquires a reference image used for motion compensation of the CU0d from the frame memory 502.
  • the motion vector of CU0d is v. Therefore, as shown in FIG. 21, the acquired reference image is the lower right 64 ⁇ 64 pixel block included in the 128 ⁇ 128 pixel block which is the reference image for the prediction unit of the original 128 ⁇ 128 pixel size.
  • the motion compensation calculation unit 603 performs motion compensation for CU0d to generate a predicted image. This completes the motion compensation for CU0d.
  • the in-plane prediction block division unit 701 determines whether or not the prediction unit is larger than 64 ⁇ 64 pixels (S1800).
  • the prediction unit is not larger than 64 ⁇ 64 pixels (No in S1800), the same process as the normal in-plane prediction process is executed. That is, the reconstructed image acquisition unit 702 acquires a reconstructed image (S1805), and the in-plane prediction calculation unit 703 performs in-plane prediction calculation (S1806).
  • the in-plane prediction block dividing unit 701 divides the prediction unit into four divided blocks of 64 ⁇ 64 pixels (S1801). Next, the reconstructed image acquisition unit 702 acquires a reference image for each divided block (S1802), and the in-plane prediction calculation unit 703 performs in-plane prediction calculation for each divided block (S1803). Next, the in-plane prediction block dividing unit 701 determines whether there is an unprocessed divided block (S1804).
  • the reconstructed image acquisition unit 702 acquires a reconstructed image (S1802), and the in-plane prediction calculation unit 703 performs calculation of in-plane prediction (S1803). If there is no unprocessed divided block (No in S1804), the in-plane prediction unit 521 ends the process.
  • FIG. 23 illustrates the operation of intra prediction when the size of the prediction unit for intra prediction is 128 ⁇ 128 pixels.
  • the in-plane prediction mode is “128 ⁇ 128 vertical prediction mode”. Therefore, in-plane prediction is processed using a reconstructed image block that is adjacent on the decoding target prediction unit and has a size of 128 ⁇ 1 pixels. Specifically, a predicted image is obtained by copying the pixel value in the reconstructed image block adjacent on the decoding target prediction unit downward.
  • the intra prediction block dividing unit 701 divides the prediction unit into 64 ⁇ 64 pixel divided blocks.
  • the original prediction unit is a block of 128 ⁇ 128 pixels which is larger than each divided block.
  • the in-plane prediction mode of each divided block is a 64 ⁇ 64 pixel in-plane prediction mode. More specifically, all the in-plane prediction modes of each divided block are “64 ⁇ 64 vertical prediction modes”.
  • a block located at the upper left of the prediction unit is called CU0a
  • a block located at the upper right is called CU0b
  • a block located at the lower left is called CU0c
  • a block located at the lower right is called CU0d.
  • the reconstructed image acquisition unit 702 acquires the reference image of CU0a from the reconstructed image memory 509 based on the position of CU0a and the in-plane prediction mode of CU0a.
  • the position and size of the acquired reconstructed image are determined by the following procedure.
  • the in-plane prediction mode of the original prediction unit is “128 ⁇ 128 vertical prediction mode”.
  • the reconstructed image acquisition unit 702 calculates the position and size of the reconstructed image referred to in the in-plane prediction of the CU0a region in the prediction unit, and acquires the reconstructed image.
  • the acquired reconstructed image is a 64 ⁇ 1 pixel block adjacent on CU0a.
  • the reconstructed image acquisition unit 702 determines the position and size of the 64 ⁇ 1 pixel block adjacent on CU0a as the position and size of the acquired reconstructed image.
  • the reconstructed image acquisition unit 702 determines the position and size of the acquired reconstructed image by the above procedure, and then acquires the 64 ⁇ 1 pixel block adjacent on the CU0a from the reconstructed image memory 509.
  • the in-plane prediction calculation unit 703 After completing the acquisition of the reconstructed image, the in-plane prediction calculation unit 703 performs in-plane prediction of the CU0a using the acquired reconstructed image, and generates a predicted image. At this time, since the in-plane prediction mode is “128 ⁇ 128 vertical prediction mode”, the in-plane prediction calculation unit 703 generates a predicted image by copying the acquired pixel value of the 64 ⁇ 1 pixel block downward. This completes the in-plane prediction of CU0a.
  • the reconstructed image acquisition unit 702 acquires a reconstructed image referred to in the in-plane prediction of the CU0b from the reconstructed image memory 509.
  • the in-plane prediction mode of the original prediction unit is “128 ⁇ 128 vertical prediction mode”. Therefore, the acquired reconstructed image is a 64 ⁇ 1 pixel block adjacent on CU0b, as shown in FIG.
  • the in-plane prediction calculation unit 703 After completing the acquisition of the reconstructed image, the in-plane prediction calculation unit 703 performs in-plane prediction of CU0b using the acquired reconstructed image, and generates a predicted image. At this time, since the in-plane prediction mode is “128 ⁇ 128 vertical prediction mode”, the in-plane prediction calculation unit 703 generates a predicted image by copying the obtained pixel value of the 64 ⁇ 1 pixel block downward. This completes the in-plane prediction of CU0b.
  • the reconstructed image acquisition unit 702 acquires a reconstructed image referred to in the in-plane prediction of the CU0c from the reconstructed image memory 509.
  • the in-plane prediction mode of the original prediction unit is “128 ⁇ 128 vertical prediction mode”. Therefore, the acquired reconstructed image is a 64 ⁇ 1 pixel block adjacent on CU0a, as shown in FIG.
  • the in-plane prediction calculation unit 703 After completing the acquisition of the reconstructed image, the in-plane prediction calculation unit 703 performs in-plane prediction of the CU0c using the acquired reconstructed image, and generates a predicted image. At this time, since the in-plane prediction mode is “128 ⁇ 128 vertical prediction mode”, the in-plane prediction calculation unit 703 generates a predicted image by copying the obtained pixel value of the 64 ⁇ 1 pixel block downward. This completes the in-plane prediction of CU0c.
  • the reconstructed image acquisition unit 702 acquires a reconstructed image referred to in the in-plane prediction of CU0d from the reconstructed image memory 509.
  • the in-plane prediction mode of the original prediction unit is “128 ⁇ 128 vertical prediction mode”. Therefore, the acquired reconstructed image is a 64 ⁇ 1 pixel block adjacent on CU0b, as shown in FIG.
  • the in-plane prediction calculation unit 703 After completing the acquisition of the reconstructed image, the in-plane prediction calculation unit 703 performs in-plane prediction of the CU0d using the acquired reconstructed image, and generates a predicted image. At this time, since the in-plane prediction mode is “128 ⁇ 128 vertical prediction mode”, the in-plane prediction calculation unit 703 generates a predicted image by copying the obtained pixel value of the 64 ⁇ 1 pixel block downward. This completes the in-plane prediction of CU0d.
  • a prediction unit used for motion compensation processing or in-plane prediction processing is divided.
  • pipeline processing including motion compensation processing and in-plane prediction processing is executed in a data unit of 64 ⁇ 64 pixels, which is the size of the largest frequency conversion unit.
  • the size of the prediction unit is larger than 64 ⁇ 64 pixels which is the size of the largest frequency conversion unit is shown. If the size of the prediction unit is smaller than 64 ⁇ 64 pixels, the prediction unit may not be divided. In that case, it is only necessary to perform motion compensation and in-plane prediction for all prediction units included in a 64 ⁇ 64 pixel block.
  • the image decoding apparatus divides the prediction unit into a plurality of blocks at the 64 ⁇ 64 pixel boundary, and, in the same manner as the above-described operation, What is necessary is just to perform the process of motion compensation and in-plane prediction.
  • FIG. 24 shows time-series operations of the image decoding apparatus according to the present embodiment.
  • FIG. 24 shows an operation in processing a plurality of encoding units shown in FIG. 7A.
  • the upper left area is called CU0a
  • the upper right area is called CU0b
  • the lower left area is called CU0c
  • the lower right area is called The area is called CU0d.
  • the third stage motion compensation process (S1005) is performed on CU0a, and the second stage inverse quantization process (S1002) and inverse frequency conversion process (S1003) are performed on CU0b.
  • the first stage variable length decoding process (S1001) is performed on CU0c.
  • the prediction unit has a size of 128 ⁇ 128 pixels, but is divided into data units of 64 ⁇ 64 pixels as described above.
  • the fourth stage in-plane prediction process (S1006) and the reconstruction process (S1007) are performed for CU0a, and the third stage motion compensation process (S1005) is performed for CU0b.
  • the second stage inverse quantization process (S1002) and the inverse frequency transform process (S1003) are performed on CU0c, and the first stage variable length decoding process (S1001) is performed on CU0d.
  • the prediction unit of CU0 has a size of 128 ⁇ 128 pixels, but is divided into data units of 64 ⁇ 64 pixels as described above.
  • the fourth stage in-plane prediction process (S1006) and the reconstruction process (S1007) are performed for CU0b, and the third stage motion compensation process (S1005) is performed for CU0c.
  • the second stage inverse quantization process (S1002) and the inverse frequency transform process (S1003) are performed on CU0d, and the first stage variable length decoding process (S1001) is performed on CU1.
  • the prediction unit of CU0 has a size of 128 ⁇ 128 pixels, but is divided into data units of 64 ⁇ 64 pixels as described above.
  • the fourth stage in-plane prediction process (S1006) and the reconstruction process (S1007) are performed for CU0c, and the third stage motion compensation process (S1005) is performed for CU0d.
  • the second stage inverse quantization process (S1002) and the inverse frequency transform process (S1003) are performed on CU1
  • the first stage variable length decoding process (S1001) is performed on CU2.
  • the prediction unit of CU0 has a size of 128 ⁇ 128 pixels, but is divided into data units of 64 ⁇ 64 pixels as described above.
  • the fourth stage in-plane prediction process (S1006) and the reconstruction process (S1007) are performed on CU0d, and the third stage motion compensation process (S1005) is performed on CU1.
  • the second stage inverse quantization process (S1002) and the inverse frequency transform process (S1003) are performed on CU2, and the first stage variable length decoding process (S1001) is performed on CU3.
  • the prediction unit of CU0 has a size of 128 ⁇ 128 pixels, but is divided into data units of 64 ⁇ 64 pixels as described above.
  • the size of the frequency conversion unit is always 64 ⁇ 64 pixels or less. Then, an encoded stream is sequentially formed in a data unit of 64 ⁇ 64 pixels. Therefore, pipeline processing is executed in units of 64 ⁇ 64 pixel data, which is the maximum size of the frequency conversion unit.
  • motion compensation processing and in-plane prediction processing are also executed in units of 64 ⁇ 64 pixels.
  • the amount of data processed in each stage of the pipeline is constant as compared with FIG. 64 showing the conventional operation. For this reason, the processing idle time is reduced, and the pipeline processing is efficiently executed.
  • the variable length decoding unit 503 writes the result of the variable length decoding process of CU0b in the memory 511.
  • the memory 511 only needs to have a memory capacity capable of storing a data unit for executing pipeline processing.
  • the data unit of the present embodiment is the largest frequency conversion unit, and the size thereof is 64 ⁇ 64 pixels. That is, the memory capacity according to the present embodiment may be smaller than that of the first embodiment in which the data unit is the maximum encoding unit of 128 ⁇ 128 pixels.
  • variable length decoding unit 503 and the inverse quantization unit 504 has been described, but a similar memory may be arranged between other processing units. A similar memory may be arranged in the control unit 501. Further, in the present embodiment, in the fifth stage deblocking filter processing, a pipeline is constituted by the maximum coding unit. For this reason, as in the first embodiment, this processing requires a memory capacity capable of storing data necessary for processing of a maximum encoding unit of at least 128 ⁇ 128 pixels.
  • the image decoding apparatus shown in the present embodiment executes pipeline processing in units of data of the largest frequency conversion unit. Thereby, the amount of data processed in each stage becomes constant. Therefore, the processing time of each stage of the pipeline is constant. Therefore, the pipeline processing is executed efficiently. As a result, the processing performance is improved. In addition, since the circuit operates efficiently, power consumption can be reduced.
  • the pipeline process is executed in the data unit of the largest frequency conversion unit.
  • the largest frequency transform unit is smaller than the largest coding unit. Accordingly, the memory capacity between the processing units can be reduced, and the circuit scale can be reduced.
  • the name “encoding unit” is used as a data unit used for encoding.
  • the data unit used for encoding may be a macroblock.
  • a data unit used for encoding may be called a super macroblock.
  • Non-Patent Document 2 the encoding method shown in Non-Patent Document 2 is used. And in this Embodiment, an example of the content of each process is shown. However, the content of each process is not limited to the example of this embodiment.
  • the maximum encoding unit size is 128 ⁇ 128 pixels.
  • the size of the maximum coding unit may be any size.
  • the size of the encoding unit is 128 ⁇ 128 pixels to 8 ⁇ 8 pixels.
  • the size of the encoding unit may be other sizes.
  • the configuration of the pipeline processing shown in the present embodiment is an example. It is not always necessary to divide a plurality of processes into a plurality of stages as in this embodiment. For example, some processes may be realized in one stage, and one process may be divided into several stages.
  • variable length code is used.
  • the encoding method of the variable length code may be any encoding method such as a Huffman code, a run length code, or an arithmetic code.
  • each processing unit a part or all of the processing units may be realized by a circuit using dedicated hardware, or may be realized by a program on a processor.
  • the frame memory 502, the reconstructed image memory 509, and the memory 511 are not limited to memories, and may be storage elements that can store data. For example, these may be other configurations such as flip-flops or registers. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used for these.
  • pipeline processing is executed in units of 64 ⁇ 64 pixel data, which is the largest frequency conversion unit size.
  • the data unit is not necessarily limited to 64 ⁇ 64 pixels.
  • the frequency conversion process is executed using all data included in one data unit. Therefore, it is difficult to divide the frequency conversion unit. Therefore, in the present embodiment, the size of the largest frequency conversion unit is selected. However, if it is difficult to divide the data unit used for the process other than the frequency conversion process, the pipeline process may be executed for the data unit used for the process.
  • the reconstructed image memory 509 is explicitly shown. However, the memory in each processing unit may be used as the reconstructed image memory 509, or the frame memory 502 may be used as the reconstructed image memory 509.
  • the existence of a skip block in which the code amount of the encoding unit is zero is not shown.
  • the image decoding apparatus according to the present embodiment may execute pipeline processing with the largest frequency conversion unit size.
  • the image decoding apparatus according to the present embodiment may divide a prediction unit used for motion compensation or intra prediction by the size of the largest frequency transform unit.
  • peripheral pixels necessary for the filter processing of the reference image may be acquired as necessary.
  • the image decoding apparatus may acquire peripheral pixels used for filter processing as necessary.
  • pipeline processing is not limited to decoding processing.
  • An encoding process which is the reverse process of the decoding process, may be executed in a pipeline manner as in the present embodiment. Thereby, the memory capacity is reduced and the circuit scale is reduced.
  • the CU partition flag is present at the head of the divided block.
  • the CU division flag is not necessarily present at such a position, and may be present in the encoded stream.
  • the CU partition flag may be present at the beginning of the maximum coding unit (LCU).
  • the TU partition flag is present at the head of each coefficient information.
  • the TU partition flag is not necessarily present at such a position, and may be present in the encoded stream.
  • the TU partition flag may exist at the head of the encoding unit or the maximum encoding unit.
  • processing is switched for each time slot.
  • the process does not necessarily have to be switched in a fixed time.
  • the next process may be started. Further, the processing does not have to be switched simultaneously in each stage.
  • the image decoding apparatus decodes an encoded stream.
  • the size of the encoding unit constituting the encoded stream is variable.
  • the image decoding apparatus divides a plurality of processes included in the decoding process into a plurality of stages, and performs a plurality of processes in parallel by a pipeline method.
  • the image decoding apparatus performs a plurality of processes with the size of the frequency conversion unit.
  • the frequency conversion unit is a data unit for performing frequency conversion. Further, the frequency conversion unit is included in an encoding unit that forms an encoded stream.
  • the deblocking filter processing in the encoded stream is H.264. It is executed in an order different from the order defined in the H.264 standard. Then, motion compensation processing, in-plane prediction processing, and deblocking filter processing are executed with the size of the frequency conversion unit.
  • the processing data amount in each of the plurality of processes constituting the pipeline processing is equal regardless of the size of each encoding unit. Therefore, free time in pipeline processing is reduced, and pipeline processing is performed efficiently. Therefore, performance is improved.
  • the memory capacity between the processing units can be further reduced as compared with the third embodiment.
  • FIG. 12 is a configuration diagram of the image decoding apparatus according to the present embodiment. Since the configuration of the image decoding apparatus according to the present embodiment is the same as that of Embodiment 3, description thereof is omitted.
  • FIG. 2 is a configuration diagram showing the connection between the variable length decoding unit 503 and the inverse quantization unit 504. Since the connection configuration is the same as that of the third embodiment, the description thereof is omitted.
  • the operation of the image decoding apparatus in the present embodiment is the same as the operation shown in the flowcharts of FIGS. 8 and 9, and is the same as the operation of the third embodiment, but the deblocking filter processing (S1008) is different. .
  • the image decoding apparatus performs deblock filter processing on the CU1 to CU4 shown in FIG. 7A in the order of the numbers shown in FIG. That is, the deblocking filter unit 510 performs processing in the order of the vertical boundary of CU1, the horizontal boundary of CU1, the vertical boundary of CU2, the horizontal boundary of CU2, the vertical boundary of CU3, the horizontal boundary of CU3, the vertical boundary of CU4, and the horizontal boundary of CU4. Deblock filter processing is performed.
  • the deblock filter unit 510 can perform the CU1 deblock filter process (S1008).
  • a memory capable of storing a data unit of 64 ⁇ 64 pixels is sufficient between the reconstruction unit 508 and the deblock filter unit 510.
  • the image decoding apparatus performs deblocking filter processing on the CU0 shown in FIG. 7A in the order of the numbers shown in FIG. That is, the deblocking filter unit 510 performs processing in the order of the vertical boundary of CU0a, the horizontal boundary of CU0a, the vertical boundary of CU0b, the horizontal boundary of CU0b, the vertical boundary of CU0c, the horizontal boundary of CU0c, the vertical boundary of CU0d, and the horizontal boundary of CU0d. Deblock filter processing is performed.
  • the deblock filter unit 510 can perform the CU0a deblock filter process (S1008).
  • CU0a is an upper left region among four regions of 64 ⁇ 64 pixels obtained by dividing CU0 into four.
  • CU0b is an upper right area
  • CU0c is a lower left area
  • CU0d is a lower right area.
  • FIG. 28 shows time-series operations of the image decoding apparatus according to the present embodiment.
  • FIG. 28 shows an operation in processing a plurality of encoding units shown in FIG. 7A.
  • the third stage motion compensation process (S1005) is performed on CU0a, and the second stage inverse quantization process (S1002) and inverse frequency conversion process (S1003) are performed on CU0b.
  • the first stage variable length decoding process (S1001) is performed on CU0c.
  • the prediction unit has a size of 128 ⁇ 128 pixels, but is divided into data units of 64 ⁇ 64 pixels as described above.
  • the fourth stage in-plane prediction process (S1006) and the reconstruction process (S1007) are performed for CU0a, and the third stage motion compensation process (S1005) is performed for CU0b.
  • the second stage inverse quantization process (S1002) and the inverse frequency transform process (S1003) are performed on CU0c, and the first stage variable length decoding process (S1001) is performed on CU0d.
  • the prediction unit of CU0 has a size of 128 ⁇ 128 pixels, but is divided into data units of 64 ⁇ 64 pixels as described above.
  • the fifth stage deblocking filter processing (S1008) is performed on CU0a, and the fourth stage in-plane prediction processing (S1006) and reconstruction processing (S1007) are performed on CU0b.
  • a third stage motion compensation process (S1005) is performed on CU0c, and a second stage inverse quantization process (S1002) and an inverse frequency transform process (S1003) are performed on CU0d.
  • the first stage variable length decoding process (S1001) is performed on CU1.
  • the prediction unit of CU0 has a size of 128 ⁇ 128 pixels, but is divided into data units of 64 ⁇ 64 pixels as described above.
  • the fifth stage deblocking filter processing (S1008) is performed on CU0b, and the fourth stage in-plane prediction processing (S1006) and reconstruction processing (S1007) are performed on CU0c.
  • the third stage motion compensation process (S1005) is performed on CU0d, and the second stage inverse quantization process (S1002) and the inverse frequency conversion process (S1003) are performed on CU1.
  • the first stage variable length decoding process (S1001) is performed on CU2.
  • the prediction unit of CU0 has a size of 128 ⁇ 128 pixels, but is divided into data units of 64 ⁇ 64 pixels as described above.
  • the fifth stage deblocking filter processing (S1008) is performed on CU0c, and the fourth stage in-plane prediction processing (S1006) and reconstruction processing (S1007) are performed on CU0d.
  • a third stage motion compensation process (S1005) is performed on CU1
  • a second stage inverse quantization process (S1002) and an inverse frequency conversion process (S1003) are performed on CU2.
  • the first stage variable length decoding process (S1001) is performed on CU3.
  • the prediction unit of CU0 has a size of 128 ⁇ 128 pixels, but is divided into data units of 64 ⁇ 64 pixels as described above.
  • the amount of data processed in each stage of the pipeline is constant as compared with FIG. 64 showing the conventional operation. For this reason, the processing idle time is reduced, and the pipeline processing is efficiently executed.
  • the variable length decoding unit 503 writes the result of the variable length decoding process of CU0b in the memory 511.
  • the memory 511 only needs to have a memory capacity capable of storing a data unit for executing the pipeline.
  • the data unit of the present embodiment is the largest frequency conversion unit, and the size thereof is 64 ⁇ 64 pixels. That is, the memory capacity according to the present embodiment may be smaller than that of the first embodiment in which the data unit is the maximum encoding unit of 128 ⁇ 128 pixels.
  • variable length decoding unit 503 and the inverse quantization unit 504 has been described, but a similar memory may be arranged between other processing units.
  • a similar memory may be arranged in the control unit 501.
  • the pipeline is configured with the size of the largest frequency conversion unit, all of which is 64 ⁇ 64 pixels. Therefore, the memory capacity can be reduced as compared with the first to third embodiments.
  • the image decoding apparatus shown in the present embodiment executes pipeline processing in units of data of the largest frequency conversion unit. Thereby, the amount of data processed in each stage becomes constant. Therefore, the processing time of each stage of the pipeline is constant. Therefore, the pipeline processing is executed efficiently. As a result, the processing performance is improved. In addition, since the circuit operates efficiently, power consumption can be reduced.
  • the processing order of the deblocking filter processing is changed as compared with the third embodiment. And also about a deblocking filter process, a pipeline process is performed by the data unit of the largest frequency conversion unit.
  • the largest frequency transform unit is smaller than the largest coding unit. Accordingly, the memory capacity between the processing units can be reduced, and the circuit scale can be reduced.
  • the name “encoding unit” is used as a data unit used for encoding.
  • the data unit used for encoding may be a macroblock.
  • a data unit used for encoding may be called a super macroblock.
  • Non-Patent Document 2 the encoding method shown in Non-Patent Document 2 is used. And in this Embodiment, an example of the content of each process is shown. However, the content of each process is not limited to the example of this embodiment.
  • the maximum encoding unit size is 128 ⁇ 128 pixels.
  • the size of the maximum coding unit may be any size.
  • the size of the encoding unit is 128 ⁇ 128 pixels to 8 ⁇ 8 pixels.
  • the size of the encoding unit may be other sizes.
  • the configuration of the pipeline processing shown in the present embodiment is an example. It is not always necessary to divide a plurality of processes into a plurality of stages as in this embodiment. For example, some processes may be realized in one stage, and one process may be divided into several stages.
  • variable length code is used.
  • the encoding method of the variable length code may be any encoding method such as a Huffman code, a run length code, or an arithmetic code.
  • each processing unit a part or all of the processing units may be realized by a circuit using dedicated hardware, or may be realized by a program on a processor.
  • the frame memory 502, the reconstructed image memory 509, and the memory 511 are not limited to memories, and may be storage elements that can store data. For example, these may be other configurations such as flip-flops or registers. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used for these.
  • pipeline processing is executed in units of 64 ⁇ 64 pixel data, which is the largest frequency conversion unit size.
  • the data unit is not necessarily limited to 64 ⁇ 64 pixels.
  • the frequency conversion process is executed using all data included in one data unit. Therefore, it is difficult to divide the frequency conversion unit. Therefore, in the present embodiment, the size of the largest frequency conversion unit is selected. However, if it is difficult to divide the data unit used for the process other than the frequency conversion process, the pipeline process may be executed for the data unit used for the process.
  • the reconstructed image memory 509 is explicitly shown. However, the memory in each processing unit may be used as the reconstructed image memory 509, or the frame memory 502 may be used as the reconstructed image memory 509.
  • the change of the processing order of the deblock filter processing is applied to the image decoding device according to the third embodiment.
  • the change in the processing order of the deblocking filter processing may be applied to the image decoding device according to the first embodiment or the second embodiment.
  • the deblock filter process is performed on the horizontal boundary after being performed on the vertical boundary of CU1.
  • the order of the deblocking filter processing is not limited to the order described above, and any order may be used.
  • the existence of a skip block in which the code amount of the encoding unit is zero is not shown.
  • the image decoding apparatus according to the present embodiment may execute pipeline processing with the largest frequency conversion unit size.
  • the image decoding apparatus according to the present embodiment may divide a prediction unit used for motion compensation or intra prediction by the size of the largest frequency transform unit.
  • the plurality of encoding units are encoded in raster order.
  • H. In an arbitrary slice order (ASO: Arbitrary Slice Order) according to the H.264 standard, a plurality of encoding units are not encoded in raster order.
  • the image decoding apparatus does not perform the deblocking filter process on the slice boundary but performs the deblocking filter process only on the inside of the slice.
  • ASO Arbitrary Slice Order
  • pipeline processing is not limited to decoding processing.
  • An encoding process which is the reverse process of the decoding process, may be executed in a pipeline manner as in the present embodiment. Thereby, the memory capacity is reduced and the circuit scale is reduced.
  • the CU partition flag is present at the head of the divided block.
  • the CU division flag is not necessarily present at such a position, and may be present in the encoded stream.
  • the CU partition flag may be present at the beginning of the maximum coding unit (LCU).
  • the TU partition flag is present at the head of each coefficient information.
  • the TU partition flag is not necessarily present at such a position, and may be present in the encoded stream.
  • the TU partition flag may exist at the head of the encoding unit or the maximum encoding unit.
  • processing is switched for each time slot.
  • the process does not necessarily have to be switched in a fixed time.
  • the next process may be started. Further, the processing does not have to be switched simultaneously in each stage.
  • the image decoding apparatus decodes an encoded stream.
  • the size of the encoding unit constituting the encoded stream is variable.
  • the image decoding apparatus divides a plurality of processes included in the decoding process into a plurality of stages, and performs a plurality of processes in parallel by a pipeline method.
  • the image decoding apparatus performs a plurality of processes with the size of the frequency conversion unit.
  • the frequency conversion unit is a data unit for performing frequency conversion. Further, the frequency conversion unit is included in an encoding unit that forms an encoded stream.
  • the image decoding apparatus divides the prediction unit used for the motion compensation process and the in-plane prediction process by the size of the frequency conversion unit.
  • the image decoding apparatus can use the inter prediction result for in-plane prediction in one time slot.
  • FIG. 29 is a block diagram of the image decoding apparatus according to the present embodiment.
  • the same components as those of the first embodiment shown in FIG. 1 are assigned the same reference numerals, and the description thereof is omitted.
  • the image decoding apparatus according to the present embodiment includes an in-plane prediction unit 710.
  • the in-plane prediction unit 710 performs in-plane prediction processing while performing reconstruction processing in units of data having the size of the maximum coding unit.
  • FIG. 2 is a configuration diagram showing the connection between the variable length decoding unit 503 and the inverse quantization unit 504. Since the connection configuration is the same as that of the first embodiment, description thereof is omitted.
  • FIG. 30 shows the configuration of the in-plane prediction unit 710 in FIG.
  • the same reference numerals are assigned to the same components as those shown in FIG. 29, and the description thereof is omitted.
  • the in-plane prediction unit 710 includes a reconstructed image acquisition unit 702, an in-plane prediction calculation unit 703, a switch 711, and a reconstruction unit 712.
  • the reconstructed image acquisition unit 702 acquires a reconstructed image.
  • the in-plane prediction calculation unit 703 generates an in-plane prediction image.
  • the switch 711 switches between inter prediction and in-plane prediction.
  • the reconstruction unit 712 generates a decoded image using the predicted image and the difference image.
  • a reconstructed image memory 509 is a memory for storing a reconstructed image.
  • FIG. 31 shows a configuration example of a plurality of encoding units used for explaining the operation.
  • FIG. 31 shows a plurality of encoding units following FIG. 7A.
  • the plurality of encoding units shown in FIG. 31 include 64 ⁇ 64 pixel CU8, CU9, 32 ⁇ 32 pixel CU10 to CU13, and 64 ⁇ 64 pixel CU14.
  • In-plane prediction is used for CU12.
  • Inter prediction is used for all coding units other than CU12.
  • the operation flow of the image decoding apparatus according to the present embodiment is the same as that of the first embodiment shown in FIGS. 8 and 9 except for the in-plane prediction process (S1006) and the reconstruction process (S1007). Therefore, explanation is omitted.
  • the in-plane prediction process (S1006) and the reconstruction process (S1007) will be described.
  • the in-plane prediction unit 710 determines whether or not in-plane prediction is used for the encoding unit to be processed (S5000).
  • the reconstructed image acquisition unit 702 acquires an image from the reconstructed image memory 509.
  • the in-plane prediction calculation unit 703 generates an in-plane prediction image (S5001).
  • the reconstruction unit 712 acquires a prediction image generated by the inter prediction of the motion compensation unit 520 (S5003). Next, the reconstruction unit 712 generates a reconstructed image from the predicted image and the difference image (S5002). Then, the reconstruction unit 712 stores an image that may be referred to among the generated reconstructed images in the reconstructed image memory 509 (S5004).
  • the in-plane prediction unit 710 determines whether or not all the reconstruction processes have been completed (S5005). When all the reconstruction processes are not completed (No in S5005), the in-plane prediction unit 710 determines again whether or not the in-plane prediction is used (S5000). When all the reconstruction processes are completed (Yes in S5005), the in-plane prediction unit 710 ends the process.
  • the in-plane prediction unit 710 performs the reconstruction process. Thereby, the pipeline processing is executed smoothly.
  • a block of 64 ⁇ 64 pixels that is one data unit is further divided into a plurality of coding units, and intra prediction is used for one of the plurality of coding units. May be.
  • the in-plane prediction unit 710 may perform the in-plane prediction process of CU12 using the resulting reconstructed image. it can.
  • the name “encoding unit” is used as a data unit used for encoding.
  • the data unit used for encoding may be a macroblock.
  • a data unit used for encoding may be called a super macroblock.
  • Non-Patent Document 2 the encoding method shown in Non-Patent Document 2 is used. And in this Embodiment, an example of the content of each process is shown. However, the content of each process is not limited to the example of this embodiment.
  • the maximum encoding unit size is 128 ⁇ 128 pixels.
  • the size of the maximum coding unit may be any size.
  • the size of the encoding unit is 128 ⁇ 128 pixels to 8 ⁇ 8 pixels.
  • the size of the encoding unit may be other sizes.
  • the pipeline configuration using the in-plane prediction unit 710 of the present embodiment includes the first embodiment (FIG. 10), the second embodiment (FIG. 11), the third embodiment (FIG. 24), and the embodiment. 4 (FIG. 29) or the like.
  • each processing unit a part or all of the processing units may be realized by a circuit using dedicated hardware, or may be realized by a program on a processor.
  • the frame memory 502, the reconstructed image memory 509, and the memory 511 are not limited to memories, and may be storage elements that can store data. For example, these may be other configurations such as flip-flops or registers. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used for these.
  • pipeline processing is executed in units of 64 ⁇ 64 pixel data, which is the largest frequency conversion unit size.
  • the data unit is not necessarily limited to 64 ⁇ 64 pixels.
  • the frequency conversion process is executed using all data included in one data unit. Therefore, it is difficult to divide the frequency conversion unit. Therefore, in the present embodiment, the size of the largest frequency conversion unit is selected. However, if it is difficult to divide the data unit used for the process other than the frequency conversion process, the pipeline process may be executed for the data unit used for the process.
  • the reconstructed image memory 509 is explicitly shown. However, the memory in each processing unit may be used as the reconstructed image memory 509, or the frame memory 502 may be used as the reconstructed image memory 509.
  • the CU partition flag is present at the head of the divided block.
  • the CU division flag is not necessarily present at such a position, and may be present in the encoded stream.
  • the CU partition flag may be present at the beginning of the maximum coding unit (LCU).
  • the TU partition flag is present at the head of each coefficient information.
  • the TU partition flag is not necessarily present at such a position, and may be present in the encoded stream.
  • the TU partition flag may exist at the head of the encoding unit or the maximum encoding unit.
  • processing is switched for each time slot.
  • the process does not necessarily have to be switched in a fixed time.
  • the next process may be started. Further, the processing does not have to be switched simultaneously in each stage.
  • the image decoding apparatus decodes an encoded stream.
  • the size of the encoding unit constituting the encoded stream is variable.
  • the image decoding apparatus divides a plurality of processes included in the decoding process into a plurality of stages, and performs a plurality of processes in parallel by a pipeline method.
  • the image decoding apparatus performs a plurality of processes with the size of the frequency conversion unit.
  • the frequency conversion unit is a data unit for performing frequency conversion. Further, the frequency conversion unit is included in an encoding unit that forms an encoded stream.
  • the image decoding apparatus divides the prediction unit used for the motion compensation process and the in-plane prediction process by the size of the frequency conversion unit.
  • the image decoding apparatus efficiently decodes an encoded stream in which luminance data (luminance information) and color difference data (color difference information) are separately arranged. That is, the image decoding apparatus executes subsequent processing on the luminance data without waiting for the end of the variable length decoding processing of the color difference data. Therefore, the capacity of the buffer memory can be reduced.
  • FIG. 29 is a configuration diagram of the image decoding apparatus according to the present embodiment. Since the configuration of the image decoding apparatus according to the present embodiment is the same as that of Embodiment 5, the description thereof is omitted.
  • FIG. 2 is a configuration diagram showing the connection between the variable length decoding unit 503 and the inverse quantization unit 504. Since the connection configuration is the same as that of the first embodiment, description thereof is omitted.
  • FIG. 30 shows the configuration of the in-plane prediction unit 710 in FIG. Since the configuration of the in-plane prediction unit 710 is the same as that of the fifth embodiment, description thereof is omitted.
  • coefficient data of luminance (indicated by Y in FIG. 33) is arranged for each 64 ⁇ 64 pixel frequency conversion unit in the encoded stream.
  • coefficient data of blue color difference (indicated by Cb in FIG. 33) is arranged for each frequency conversion unit of 32 ⁇ 32 pixels.
  • coefficient data of red color difference (indicated by Cr in FIG. 33) is arranged for each frequency conversion unit of 32 ⁇ 32 pixels.
  • the 4: 2: 0 format is assumed as the image format. Therefore, the color difference (Cb, Cr) data is 32 ⁇ 32 pixels.
  • FIG. 34 shows time-series operations of pipeline processing.
  • a block hatched by a diagonal line rising to the right indicates a block of blue color difference (Cb)
  • a block hatched by a diagonal line rising to the left indicates a block of red color difference (Cr).
  • the image decoding apparatus divides CU0 into six blocks of CU0aY to CU0dY, CU0Cb, and CU0Cr, and executes pipeline processing.
  • CU0 is one encoding unit of 128 ⁇ 128 pixels.
  • Each of CU0aY to CU0dY is a luminance block.
  • CU0Cb is a blue color difference block.
  • CU0Cr is a red color difference block.
  • the encoding unit composed of luminance data of 64 ⁇ 64 pixels has a data unit size of color difference (Cb, Cr) of 32 ⁇ 32 pixels, respectively.
  • the size of the data unit for the color difference (Cb, Cr) between CU1 and CU2 is smaller than the size of the other data unit is 64 ⁇ 64 pixels. Therefore, as in the fifth embodiment, it is difficult to switch processing in the same data unit in a plurality of stages.
  • the image decoding apparatus switches processing by the operation shown in the flowcharts of FIGS.
  • FIG. 35 shows an operation when the variable-length decoding unit 503 switches processing to CU0aY, CU0bY,.
  • the variable length decoding unit 503 determines whether or not the output memory 511 of the variable length decoding unit 503 is free (S6000).
  • variable length decoding unit 503 waits until the memory 511 is free. When the memory 511 is free (Yes in S6000), the variable length decoding unit 503 performs variable length decoding processing of the next data (S6001).
  • FIG. 36 shows an operation when the inverse quantization unit 504 switches the processing to CU0aY, CU0bY,.
  • the inverse quantization unit 504 determines whether or not the variable length decoding process by the variable length decoding unit 503 has been completed for the data to be processed (S6002).
  • the inverse quantization unit 504 waits until the variable length decoding process ends. If the variable-length decoding process has been completed (Yes in S6002), the inverse quantization unit 504 checks whether an output memory (not shown) of the inverse quantization unit 504 is free (S6003). If the memory is not free (No in S6003), the inverse quantization unit 504 waits until the memory is free. When the memory is free (Yes in S6003), the inverse quantization unit 504 performs an inverse quantization process (S6004).
  • variable length decoding unit 503 the operations of the variable length decoding unit 503 and the inverse quantization unit 504 are shown.
  • the other processing units can process the data when the data to be processed exists and the memory is free. Therefore, the image decoding apparatus can execute pipeline processing in a plurality of stages without switching processing at completely the same timing.
  • the image decoding apparatus handles luminance and color difference as separate data units. Thereby, the luminance data processing is executed without waiting for the color difference data. Therefore, the capacity of the internal buffer can be reduced.
  • the name “encoding unit” is used as a data unit used for encoding.
  • the data unit used for encoding may be a macroblock.
  • a data unit used for encoding may be called a super macroblock.
  • Non-Patent Document 2 the encoding method shown in Non-Patent Document 2 is used. And in this Embodiment, an example of the content of each process is shown. However, the content of each process is not limited to the example of this embodiment.
  • the maximum encoding unit size is 128 ⁇ 128 pixels.
  • the size of the maximum coding unit may be any size.
  • the size of the encoding unit is 128 ⁇ 128 pixels to 8 ⁇ 8 pixels.
  • the size of the encoding unit may be other sizes.
  • each processing unit a part or all of the processing units may be realized by a circuit using dedicated hardware, or may be realized by a program on a processor.
  • the frame memory 502, the reconstructed image memory 509, and the memory 511 are not limited to memories, and may be storage elements that can store data. For example, these may be other configurations such as flip-flops or registers. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used for these.
  • pipeline processing is executed in units of 64 ⁇ 64 pixel data, which is the largest frequency conversion unit size.
  • the data unit is not necessarily limited to 64 ⁇ 64 pixels.
  • the frequency conversion process is executed using all data included in one data unit. Therefore, it is difficult to divide the frequency conversion unit. Therefore, in the present embodiment, the size of the largest frequency conversion unit is selected. However, if it is difficult to divide the data unit used for the process other than the frequency conversion process, the pipeline process may be executed for the data unit used for the process.
  • the reconstructed image memory 509 is explicitly shown. However, the memory in each processing unit may be used as the reconstructed image memory 509, or the frame memory 502 may be used as the reconstructed image memory 509.
  • the CU partition flag is present at the head of the divided block.
  • the CU division flag is not necessarily present at such a position, and may be present in the encoded stream.
  • the CU partition flag may be present at the beginning of the maximum coding unit (LCU).
  • the TU partition flag is present at the head of each coefficient information.
  • the TU partition flag is not necessarily present at such a position, and may be present in the encoded stream.
  • the TU partition flag may exist at the head of the encoding unit or the maximum encoding unit.
  • processing is switched for each time slot.
  • the process does not necessarily have to be switched in a fixed time.
  • the next process may be started. Further, the processing does not have to be switched simultaneously in each stage.
  • the image decoding apparatus decodes an encoded stream.
  • the size of the encoding unit constituting the encoded stream is variable.
  • the image decoding apparatus divides a plurality of processes included in the decoding process into a plurality of stages, and performs a plurality of processes in parallel by a pipeline method.
  • the image decoding apparatus performs a plurality of processes with the size of the frequency conversion unit.
  • the frequency conversion unit is a data unit for performing frequency conversion. Further, the frequency conversion unit is included in an encoding unit that forms an encoded stream.
  • the image decoding apparatus divides the prediction unit used for the motion compensation process and the in-plane prediction process by the size of the frequency conversion unit.
  • the image decoding apparatus executes motion compensation processing in units of data including luminance data and color difference data. Thereby, the motion compensation process is efficiently executed.
  • FIG. 29 is a configuration diagram of the image decoding apparatus according to the present embodiment. Since the configuration of the image decoding apparatus according to the present embodiment is the same as that of Embodiment 6, the description thereof is omitted.
  • FIG. 2 is a configuration diagram showing the connection between the variable length decoding unit 503 and the inverse quantization unit 504. Since the connection configuration is the same as that of the sixth embodiment, description thereof is omitted.
  • FIG. 30 shows the configuration of the in-plane prediction unit 710 of FIG. Since the in-plane prediction unit 710 is the same as that in the sixth embodiment, description thereof is omitted.
  • FIG. 37 shows a time-series operation of pipeline processing.
  • a block hatched with a diagonal line rising to the right indicates a blue color difference (Cb) block
  • a block hatched with a diagonal line rising to the left indicates a block of red color difference (Cr).
  • the image decoding apparatus divides CU0 into six blocks CU0aY to CU0dY, CU0Cb, and CU0Cr, and executes pipeline processing.
  • CU0 is one encoding unit of 128 ⁇ 128 pixels.
  • Each of CU0aY to CU0dY is a luminance block.
  • CU0Cb is a blue color difference block.
  • CU0Cr is a red color difference block.
  • CU0 in the third stage motion compensation process, CU0 is not divided into luminance data and color difference data, but is handled as CU0a to CU0d. Also, the motion compensation process is performed simultaneously with the third stage inverse quantization process. These points are different from the sixth embodiment.
  • the motion compensation process (S1005) is executed after the inverse frequency conversion process (S1003) is completed.
  • the motion compensation process (S1005) can be executed if the motion vector is variable-length decoded. Therefore, even if the inverse quantization process (S1002) and the inverse frequency conversion process (S1003) are not completed, the motion compensation process (S1005) can be executed.
  • the image decoding apparatus performs motion compensation processing simultaneously with dequantization processing and inverse frequency conversion processing of CU0aY to CU0dY, CU0Cb, and CU0Cr.
  • the image decoding apparatus can simultaneously perform a motion compensation process with a large calculation amount in parallel for luminance and color difference. Therefore, the circuit configuration becomes easy and the performance can be improved.
  • the name “encoding unit” is used as a data unit used for encoding.
  • the data unit used for encoding may be a macroblock.
  • a data unit used for encoding may be called a super macroblock.
  • Non-Patent Document 2 the encoding method shown in Non-Patent Document 2 is used. And in this Embodiment, an example of the content of each process is shown. However, the content of each process is not limited to the example of this embodiment.
  • the maximum encoding unit size is 128 ⁇ 128 pixels.
  • the size of the maximum coding unit may be any size.
  • the size of the encoding unit is 128 ⁇ 128 pixels to 8 ⁇ 8 pixels.
  • the size of the encoding unit may be other sizes.
  • each processing unit a part or all of the processing units may be realized by a circuit using dedicated hardware, or may be realized by a program on a processor.
  • the frame memory 502, the reconstructed image memory 509, and the memory 511 are not limited to memories, and may be storage elements that can store data. For example, these may be other configurations such as flip-flops or registers. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used for these.
  • pipeline processing is executed in units of 64 ⁇ 64 pixel data, which is the largest frequency conversion unit size.
  • the data unit is not necessarily limited to 64 ⁇ 64 pixels.
  • the frequency conversion process is executed using all data included in one data unit. Therefore, it is difficult to divide the frequency conversion unit. Therefore, in the present embodiment, the size of the largest frequency conversion unit is selected. However, if it is difficult to divide the data unit used for the process other than the frequency conversion process, the pipeline process may be executed for the data unit used for the process.
  • the reconstructed image memory 509 is explicitly shown. However, the memory in each processing unit may be used as the reconstructed image memory 509, or the frame memory 502 may be used as the reconstructed image memory 509.
  • the third stage motion compensation processing is started simultaneously with the second stage inverse quantization.
  • the motion compensation process may be started during the execution of the variable length decoding process of the first stage, or may be started later, as long as the variable length decoding process of the motion vector is completed.
  • the CU partition flag is present at the head of the divided block.
  • the CU division flag is not necessarily present at such a position, and may be present in the encoded stream.
  • the CU partition flag may be present at the beginning of the maximum coding unit (LCU).
  • the TU partition flag is present at the head of each coefficient information.
  • the TU partition flag is not necessarily present at such a position, and may be present in the encoded stream.
  • the TU partition flag may exist at the head of the encoding unit or the maximum encoding unit.
  • processing is switched for each time slot.
  • the process does not necessarily have to be switched in a fixed time.
  • the next process may be started. Further, the processing does not have to be switched simultaneously in each stage.
  • FIG. 38 is a block diagram showing the configuration of the image processing apparatus according to the eighth embodiment.
  • the image processing apparatus 2100 illustrated in FIG. 38 includes a control unit 2110 and a plurality of first processing units 2111.
  • the multiple first processing units 2111 include a processing unit 2121 and a processing unit 2122. That is, each of the processing unit 2121 and the processing unit 2122 is a first processing unit.
  • the image processing apparatus 2100 performs a plurality of first processes on the encoded stream in a pipeline manner.
  • the encoded stream is obtained by dividing an image into a plurality of encoding unit blocks having at least two sizes and encoding the image for each encoding unit block.
  • the plurality of first processing units 2111 perform a plurality of first processes on the encoded stream in a pipeline manner. At that time, the processing unit 2121 and the processing unit 2122 included in the plurality of first processing units 2111 each execute one of the plurality of first processes.
  • the control unit 2110 divides the encoded stream into a plurality of first processing unit blocks each configured with a first size. Then, the control unit 2110 controls the plurality of first processing units 2111 so that the plurality of first processes are executed for each first processing unit block.
  • FIG. 39 is a flowchart showing the operation of the image processing apparatus 2100 shown in FIG.
  • control unit 2110 divides the encoded stream into a plurality of first processing unit blocks each configured with a first size (S2101). Then, the control unit 2110 controls the plurality of first processing units 2111 so that the plurality of first processes are executed for each first processing unit block.
  • the plurality of first processing units 2111 performs a plurality of first processes on the encoded stream in a pipeline manner (S2102).
  • the processing unit 2121 and the processing unit 2122 included in the plurality of first processing units 2111 each execute one of the plurality of first processes (S2111, S2112).
  • the plurality of first processing units 2111 perform a plurality of processes in a pipeline manner on the encoded stream based on one size. Therefore, the free time is reduced and the operation efficiency is improved.
  • the plurality of first processing units 2111 may perform a plurality of first processes for decoding an image on the encoded stream.
  • control unit 2110 may divide the encoded stream into a plurality of first processing unit blocks by dividing the encoded unit blocks constituting the encoded stream.
  • the encoded stream may be divided into a plurality of first processing unit blocks by grouping two or more encoding unit blocks constituting the encoded stream.
  • control unit 2110 may control the plurality of first processing units 2111 such that each of the plurality of first processes is executed for each of the plurality of first processing unit blocks in a predetermined period.
  • the predetermined period is, for example, a predetermined number of time slots.
  • the coding unit block may be a minimum unit that can be switched between inter-screen prediction and intra-screen prediction.
  • the first size described above may be a predetermined size as the size of the largest coding unit block.
  • the first size may be a size determined in advance as the size of the largest coding unit block in the coded stream or coding standard.
  • the first size described above may be a size determined in advance as the size of the maximum coding unit (Large Coding Unit) which is the largest coding unit block.
  • the first size may be a size predetermined as the size of the maximum encoding unit in the encoded stream or the encoding standard.
  • the first size described above may be a predetermined size as the size of the largest frequency conversion block.
  • the frequency conversion block is a data unit for frequency conversion in the encoding process or a data unit for inverse frequency conversion in the decoding process.
  • the first size may be a size predetermined as the size of the largest frequency transform block in the encoded stream or the encoding standard.
  • the first size described above may be a size predetermined as the size of the largest frequency conversion unit (Transform Unit) that is the largest frequency conversion block.
  • the first size may be a size predetermined as the size of the largest frequency conversion unit in the encoded stream or the encoding standard.
  • FIG. 40 is a configuration diagram illustrating a configuration of an image processing device according to the ninth embodiment.
  • the image processing apparatus 2200 shown in FIG. 40 includes a control unit 2210 and a plurality of first processing units 2211.
  • the plurality of first processing units 2211 includes a processing unit 2221, a processing unit 2222, and a processing unit 2223.
  • the plurality of first processing units 2211 includes a plurality of second processing units 2212.
  • the multiple second processing units 2212 include a processing unit 2222 and a processing unit 2223. That is, the processing unit 2221 is a first processing unit.
  • the processing unit 2222 and the processing unit 2223 are a first processing unit and a second processing unit, respectively.
  • the image processing apparatus 2200 performs a plurality of first processes on the encoded stream in a pipeline manner, similarly to the image processing apparatus 2100 of the eighth embodiment.
  • the plurality of first processing units 2211 performs a plurality of first processes on the encoded stream in a pipeline manner, similarly to the plurality of first processing units 2111 of the eighth embodiment. At that time, the processing unit 2221, the processing unit 2222, and the processing unit 2223 included in the plurality of first processing units 2211 each execute one of the plurality of first processes.
  • the plurality of second processing units 2212 execute a plurality of second processes included in the plurality of first processes.
  • the control unit 2210 divides the encoded stream into a plurality of first processing unit blocks each configured with a first size, similarly to the control unit 2110 of the eighth embodiment. Then, the control unit 2210 controls the plurality of first processing units 2211 so that the plurality of first processes are executed for each first processing unit block.
  • control unit 2210 divides the plurality of first processing unit blocks into a plurality of second processing unit blocks each configured by a second size smaller than the first size. Then, the control unit 2210 controls the plurality of second processing units 2212 so that the plurality of second processes are executed for each second processing unit block.
  • FIG. 41 is a flowchart showing the operation of the image processing apparatus 2200 shown in FIG.
  • control unit 2210 divides the encoded stream into a plurality of first processing unit blocks each configured with a first size (S2201). Then, the control unit 2210 controls the plurality of first processing units 2211 so that the plurality of first processes are executed for each first processing unit block.
  • control unit 2210 divides the plurality of first processing unit blocks into a plurality of second processing unit blocks each configured with a second size smaller than the first size (S2202). Then, the control unit 2210 controls the plurality of second processing units 2212 so that the plurality of second processes are executed for each second processing unit block.
  • the plurality of first processing units 2211 performs a plurality of first processes on the encoded stream in a pipeline manner (S2203).
  • the processing unit 2221, the processing unit 2222, and the processing unit 2223 included in the plurality of first processing units 2211 each execute one of the plurality of first processes (S2211, S2212, and S2213).
  • the plurality of second processing units 2212 execute a plurality of second processes (S2204).
  • the processing unit 2222 and the processing unit 2223 included in the plurality of second processing units 2212 each execute one of the plurality of second processes (S2211 and S2212).
  • control unit 2210 may divide the plurality of first processing unit blocks into a plurality of second processing unit blocks each having a size equal to or smaller than the first size. This also executes the pipeline processing with a small size. Therefore, the operating efficiency is improved.
  • control unit 2210 may divide the plurality of first processing unit blocks into a plurality of second processing unit blocks so that the luminance information and the color difference information are divided. Thereby, luminance information and color difference information are processed separately.
  • the pipeline processing is executed with a small size, and the operation efficiency is improved.
  • the plurality of first processing units 2211 may include a motion compensation processing unit that performs motion compensation processing.
  • control unit 2210 may divide the plurality of first processing unit blocks into a plurality of third processing unit blocks each configured with a third size smaller than the first size. At this time, the control unit 2210 may divide the plurality of first processing unit blocks into a plurality of third processing unit blocks so that the luminance information and the color difference information are included in one third processing unit block. Then, the control unit 2210 may control the motion compensation processing unit so that the motion compensation processing is executed for each third processing unit block.
  • FIG. 42 is a configuration diagram illustrating a configuration of the image processing device according to the tenth embodiment.
  • the image processing apparatus 2300 illustrated in FIG. 42 includes a control unit 2310 and a plurality of first processing units 2311.
  • the multiple first processing units 2311 include a processing unit 2321 and a motion compensation processing unit 2322. That is, the processing unit 2321 and the motion compensation processing unit 2322 are each a first processing unit.
  • the image processing apparatus 2300 includes the same components as the image processing apparatus 2100 according to the eighth embodiment, and operates in the same manner as the image processing apparatus 2100 according to the eighth embodiment.
  • the control unit 2310, the plurality of first processing units 2311, the processing unit 2321, and the motion compensation processing unit 2322 are respectively connected to the control unit 2110, the plurality of first processing units 2111, the processing unit 2121, and the processing unit 2122 according to the eighth embodiment.
  • Each component of the image processing apparatus 2300 operates in the same manner as the corresponding component.
  • the present embodiment has the following differences.
  • the motion compensation processing unit 2322 performs motion compensation processing.
  • the control unit 2310 divides the prediction block into a plurality of first processing unit blocks. Then, the control unit 2310 controls the motion compensation processing unit 2322 so that the motion compensation processing is executed for each first processing unit block.
  • a prediction block is a data unit for prediction processing.
  • FIG. 43 is a flowchart showing the operation of the image processing apparatus 2300 shown in FIG.
  • control unit 2310 divides the encoded stream into a plurality of first processing unit blocks each configured with a first size (S2301). Then, the control unit 2310 controls the plurality of first processing units 2311 so that the plurality of first processes are executed for each first processing unit block.
  • the control unit 2310 divides the prediction block into a plurality of first processing unit blocks. Then, the control unit 2310 controls the motion compensation processing unit 2322 so that the motion compensation processing is executed for each first processing unit block.
  • the plurality of first processing units 2311 performs a plurality of first processes on the encoded stream in a pipeline manner (S2302).
  • the processing unit 2321 and the motion compensation processing unit 2322 included in the plurality of first processing units 2311 each execute one of the plurality of first processes (S2311, S2312).
  • the motion compensation processing unit 2322 performs motion compensation processing included in the plurality of first processes (S2312).
  • FIG. 44 is a block diagram showing the configuration of the image processing apparatus according to the eleventh embodiment.
  • the image processing apparatus 2400 illustrated in FIG. 44 includes a control unit 2410 and a plurality of first processing units 2411.
  • the multiple first processing units 2411 include a processing unit 2421 and an in-plane prediction processing unit 2422. That is, the processing unit 2421 and the in-plane prediction processing unit 2422 are each a first processing unit.
  • the image processing apparatus 2400 includes the same components as those of the image processing apparatus 2100 according to the eighth embodiment, and operates in the same manner as the image processing apparatus 2100 according to the eighth embodiment.
  • the control unit 2410, the plurality of first processing units 2411, the processing unit 2421, and the in-plane prediction processing unit 2422 are respectively the control unit 2110, the plurality of first processing units 2111, the processing unit 2121, and the processing unit 2122 of the eighth embodiment.
  • Each component of the image processing apparatus 2400 operates in the same manner as the corresponding component.
  • the present embodiment has the following differences.
  • the in-plane prediction processing unit 2422 performs in-plane prediction processing.
  • the control unit 2410 divides the prediction block into a plurality of first processing unit blocks. Then, the control unit 2410 controls the in-plane prediction processing unit 2422 so that the in-plane prediction process is executed for each first processing unit block.
  • a prediction block is a data unit for prediction processing.
  • FIG. 45 is a flowchart showing the operation of the image processing apparatus 2400 shown in FIG.
  • control unit 2410 divides the encoded stream into a plurality of first processing unit blocks each configured with a first size (S2401). Then, the control unit 2410 controls the plurality of first processing units 2411 so that the plurality of first processes are executed for each first processing unit block.
  • the control unit 2410 divides the prediction block into a plurality of first processing unit blocks. Then, the control unit 2410 controls the in-plane prediction processing unit 2422 so that the in-plane prediction process is executed for each first processing unit block.
  • the plurality of first processing units 2411 performs a plurality of first processes on the encoded stream in a pipeline manner (S2402).
  • the processing unit 2421 and the in-plane prediction processing unit 2422 included in the plurality of first processing units 2411 each execute one of the plurality of first processes (S2411, S2412).
  • the in-plane prediction processing unit 2422 performs in-plane prediction processing included in the plurality of first processes (S2412).
  • FIG. 46 is a block diagram showing the configuration of the image processing apparatus according to the twelfth embodiment.
  • the image processing device 2500 illustrated in FIG. 46 includes a control unit 2510 and a plurality of first processing units 2511.
  • the multiple first processing units 2511 include a processing unit 2521 and a deblock filter processing unit 2522. That is, each of the processing unit 2521 and the deblock filter processing unit 2522 is a first processing unit.
  • the image processing device 2500 includes the same components as the image processing device 2100 according to the eighth embodiment, and operates in the same manner as the image processing device 2100 according to the eighth embodiment.
  • the control unit 2510, the plurality of first processing units 2511, the processing unit 2521, and the deblock filter processing unit 2522 are respectively the control unit 2110, the plurality of first processing units 2111, the processing unit 2121, and the processing unit 2122 of the eighth embodiment.
  • Corresponding to Each component of the image processing apparatus 2500 operates in the same manner as the corresponding component. However, as compared with the eighth embodiment, the present embodiment has the following differences.
  • the deblock filter processing unit 2522 executes deblock filter processing for removing coding distortion at the boundary of blocks such as frequency conversion blocks.
  • the control unit 2510 controls the deblock filter processing unit 2522 so that the deblock filter processing is executed for each frequency conversion block according to the order in which the frequency conversion processing is executed when the image is encoded.
  • FIG. 47 is a flowchart showing the operation of the image processing apparatus 2500 shown in FIG.
  • control unit 2510 divides the encoded stream into a plurality of first processing unit blocks each configured with a first size (S2501). Then, the control unit 2510 controls the plurality of first processing units 2511 so that the plurality of first processes are executed for each first processing unit block. At this time, the control unit 2510 sets the deblock filter processing unit 2522 so that the deblock filter processing is executed for each frequency conversion block according to the order in which the frequency conversion processing is executed when the image is encoded. Control.
  • the plurality of first processing units 2511 performs a plurality of first processes on the encoded stream in a pipeline manner (S2502).
  • the processing unit 2521 and the deblocking filter processing unit 2522 included in the plurality of first processing units 2511 each execute one of the plurality of first processes (S2511, S2512).
  • the deblock filter processing unit 2522 performs deblock filter processing included in the plurality of first processes (S2512).
  • the deblocking filter process is executed with a small size. Therefore, the free time is reduced and the operation efficiency is improved.
  • FIG. 48 is a configuration diagram showing the configuration of the image encoding device according to the thirteenth embodiment.
  • the image encoding device 2600 illustrated in FIG. 48 includes an encoding processing unit 2610 and a deblock filter processing unit 2611.
  • the image encoding device 2600 encodes an image.
  • FIG. 49 is a flowchart showing the operation of the image encoding device 2600 shown in FIG.
  • the encoding processing unit 2610 divides an image into a plurality of encoding unit blocks having at least two types of sizes. Then, the encoding processing unit 2610 performs an encoding process on the image for each encoding unit block (S2601).
  • the encoding process may include, for example, a frequency conversion process, a quantization process, a variable length encoding process, an inverse quantization process, an inverse frequency conversion process, a motion compensation process, an in-plane prediction process, and the like.
  • the deblock filter processing unit 2611 executes the deblock filter process for each coding unit block according to the order in which the coding process is performed on the coding unit block (S2602). For example, the deblock filter processing unit 2611 performs the deblock filter processing in the order shown in FIG.
  • the coding unit block subjected to the deblocking filter process is used as a reference image in a coding process such as a motion compensation process for the subsequent coding unit block.
  • the deblock filter processing unit 2611 may execute the deblock filter process (S2602) regardless of the order in which the encoding processes are performed. Then, the deblock filter processing unit 2611 may execute the deblock filter processing for each predetermined data unit different from each coding unit block. For example, as shown in FIG. 25, the deblock filter processing unit 2611 executes the deblock filter processing on one of the vertical boundary and the horizontal boundary for each predetermined data unit, and then executes it on the other. May be.
  • FIG. 50 is a configuration diagram showing the configuration of the image encoding device according to the fourteenth embodiment.
  • the image encoding device 2700 shown in FIG. 50 includes a frequency conversion processing unit 2710 and a deblock filter processing unit 2711.
  • the image encoding device 2700 encodes an image for each encoding unit block.
  • FIG. 51 is a flowchart showing the operation of the image encoding device 2700 shown in FIG.
  • the frequency conversion processing unit 2710 divides a coding unit block included in an image into a plurality of frequency conversion blocks. Then, the frequency conversion processing unit 2710 performs frequency conversion processing for each frequency conversion block on the coding unit block (S2701).
  • the deblock filter processing unit 2711 performs the deblock filter process for each frequency transform block in accordance with the order in which the frequency transform process is performed on the coding unit block (S2702).
  • the deblocking filter process is executed with a small size. Therefore, the free time is reduced and the operation efficiency is improved.
  • FIG. 52 is a configuration diagram illustrating a configuration of an image encoding device according to Embodiment 15.
  • the image encoding device 2800 shown in FIG. 52 includes a frequency conversion processing unit 2810 and an encoding processing unit 2811.
  • the image encoding device 2800 encodes an image for each encoding unit block.
  • FIG. 53 is a flowchart showing the operation of the image encoding device 2800 shown in FIG.
  • the frequency conversion processing unit 2810 divides a coding unit block included in an image into a plurality of frequency conversion blocks. Then, the frequency conversion processing unit 2810 performs frequency conversion processing for each frequency conversion block on the coding unit block (S2801).
  • the encoding processing unit 2811 encodes the encoding unit block that has been subjected to the frequency conversion process. For example, the encoding processing unit 2811 performs variable length encoding processing. Then, the encoding processing unit 2811 generates an encoded stream so that the luminance information and color difference information of the image are collected together for each frequency conversion block (S2802). For example, the encoding processing unit 2811 generates an encoded stream so that luminance information and color difference information are gathered together for each frequency conversion block, as in the encoded stream illustrated in FIGS. 5A and 5B.
  • FIG. 54 is a diagram showing an example of the encoded stream according to the present embodiment.
  • the coding unit block includes four frequency conversion blocks A, B, C, and D.
  • the coefficient information corresponding to each frequency conversion block includes luminance information (Y) and color difference information (Cb, Cr). That is, the encoding processing unit 2811 generates an encoded stream so that luminance information (Y) and color difference information (Cb, Cr) are gathered together for each frequency conversion block as shown in FIG.
  • the encoded stream is configured in the order of luminance information of the first frequency conversion block, color difference information of the first frequency conversion block, luminance information of the second frequency conversion block, and color difference information of the second frequency conversion block. It may be. That is, the luminance information and the color difference information may be independently included in the encoded stream, and the luminance information and the color difference information may be collected together for each frequency conversion block. Even with such a configuration, pipeline processing can be executed in units of data of the frequency conversion block.
  • the image processing apparatus, the image decoding apparatus, and the image encoding apparatus according to the present invention have been described based on a plurality of embodiments. However, the present invention is not limited to these embodiments. Forms obtained by subjecting those embodiments to modifications conceivable by those skilled in the art, and other forms realized by arbitrarily combining components in those embodiments are also included in the present invention.
  • another processing unit may execute a process executed by a specific processing unit.
  • the order in which the processes are executed may be changed, or a plurality of processes may be executed in parallel.
  • the present invention can be realized not only as an image processing apparatus, an image decoding apparatus, or an image encoding apparatus, but also as a method using steps of processing means constituting the image processing apparatus, the image decoding apparatus, or the image encoding apparatus. For example, these steps are performed by a computer.
  • the present invention can be realized as a program for causing a computer to execute the steps included in these methods.
  • the present invention can be realized as a computer-readable recording medium such as a CD-ROM in which the program is recorded.
  • the plurality of components included in the image processing device, the image decoding device, or the image encoding device may be realized as an LSI (Large Scale Integration) that is an integrated circuit. These components may be individually made into one chip, or may be made into one chip so as to include a part or all of them. For example, the components other than the memory may be integrated into one chip. Although referred to here as an LSI, it may be referred to as an IC (Integrated Circuit), a system LSI, a super LSI, or an ultra LSI depending on the degree of integration.
  • IC Integrated Circuit
  • the method of circuit integration is not limited to LSI, and implementation with a dedicated circuit or a general-purpose processor is also possible.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
  • the configuration included in the image processing device, image decoding device, or image coding device using that technology may be integrated into a circuit.
  • the storage medium may be any medium that can record a program, such as a magnetic disk, an optical disk, a magneto-optical disk, an IC card, and a semiconductor memory.
  • FIG. 55 is a diagram showing an overall configuration of a content supply system ex100 that realizes a content distribution service.
  • the communication service providing area is divided into desired sizes, and base stations ex106 to ex110, which are fixed radio stations, are installed in each cell.
  • devices such as a computer ex111, a PDA (Personal Digital Assistant) ex112, a camera ex113, a mobile phone ex114, and a game machine ex115 are mutually connected via a telephone network ex104 and base stations ex106 to ex110. Connected. Each device is connected to the Internet ex101 via the Internet service provider ex102.
  • PDA Personal Digital Assistant
  • each device may be directly connected to the telephone network ex104 without going through the base stations ex106 to ex110 which are fixed wireless stations.
  • the devices may be directly connected to each other via short-range wireless or the like.
  • the camera ex113 is a device that can shoot a moving image such as a digital video camera
  • the camera ex116 is a device that can shoot a still image and a moving image such as a digital camera.
  • the mobile phone ex114 is a GSM (Global System for Mobile Communications) method, a CDMA (Code Division Multiple Access) method, a W-CDMA (Wideband-Code Division MultipleL), or a High AccessL (L) system. (High Speed Packet Access) type mobile phone, PHS (Personal Handyphone System), etc., which may be either.
  • the camera ex113 and the like are connected to the streaming server ex103 through the base station ex109 and the telephone network ex104, thereby enabling live distribution and the like.
  • live distribution the content (for example, music live video) captured by the user using the camera ex113 is encoded as described in the above embodiments and transmitted to the streaming server ex103.
  • the streaming server ex103 streams the transmitted content data to the requested client.
  • the client include a computer ex111, a PDA ex112, a camera ex113, a mobile phone ex114, a game machine ex115, and the like that can decode the encoded data. Each device that has received the distributed data decodes and reproduces the received data.
  • the encoded processing of the captured data may be performed by the camera ex113, the streaming server ex103 that performs data transmission processing, or may be performed in a shared manner.
  • the distributed processing of the distributed data may be performed by the client, the streaming server ex103, or may be performed in a shared manner.
  • still images and / or moving image data captured by the camera ex116 may be transmitted to the streaming server ex103 via the computer ex111.
  • the encoding process in this case may be performed by any of the camera ex116, the computer ex111, and the streaming server ex103, or may be performed in a shared manner.
  • these encoding processing and decoding processing are generally executed in a computer ex111 and an LSI (Large Scale Integration) ex500 included in each device.
  • the LSI ex500 may be configured as a single chip or a plurality of chips.
  • image encoding software or image decoding software is incorporated into any recording medium (CD-ROM, flexible disk, hard disk, etc.) that can be read by the computer ex111 and the like, and encoding processing or decoding processing is performed using the software. May be performed.
  • moving image data acquired by the camera may be transmitted. The moving image data at this time is data encoded by the LSI ex500 included in the mobile phone ex114.
  • the streaming server ex103 may be a plurality of servers or a plurality of computers, and may process, record, and distribute data in a distributed manner.
  • the encoded data can be received and reproduced by the client.
  • the information transmitted by the user can be received, decrypted and reproduced in real time by the client, and even a user who does not have special rights and facilities can realize personal broadcasting.
  • At least one of the image encoding device and the image decoding device according to each of the above embodiments can be incorporated into the digital broadcasting system ex200.
  • a bit stream of video information is transmitted to a communication or satellite ex202 via radio waves.
  • This bit stream is an encoded bit stream encoded by the image encoding method described in the above embodiments.
  • the broadcasting satellite ex202 transmits a radio wave for broadcasting, and this radio wave is received by a home antenna ex204 capable of receiving satellite broadcasting.
  • the received bit stream is decoded and reproduced by a device such as the television (receiver) ex300 or the set top box (STB) ex217.
  • the image decoding apparatus described in the above embodiment can be mounted on the playback apparatus ex212 that reads and decodes the bitstream recorded on the recording medium ex214 such as a CD and a DVD that are recording media.
  • the reproduced video signal is displayed on the monitor ex213.
  • the image decoding shown in the above embodiments is also performed on the reader / recorder ex218 that reads and decodes the encoded bitstream recorded on the recording medium ex215 such as DVD and BD, or encodes and writes the video signal on the recording medium ex215.
  • the reproduced video signal is displayed on the monitor ex219, and the video signal can be reproduced in another device and system using the recording medium ex215 in which the encoded bitstream is recorded.
  • an image decoding device may be mounted in a set-top box ex217 connected to a cable ex203 for cable television or an antenna ex204 for satellite / terrestrial broadcasting and displayed on the monitor ex219 of the television. At this time, the image decoding apparatus may be incorporated in the television instead of the set top box.
  • FIG. 57 is a diagram illustrating a television (receiver) ex300 that uses the image decoding method described in each of the above embodiments.
  • the television ex300 includes a tuner ex301 that acquires or outputs a bit stream of video information via the antenna ex204 or the cable ex203 that receives the broadcast, and the encoded data that is demodulated or transmitted to the outside.
  • a modulation / demodulation unit ex302 that modulates and a multiplexing / separation unit ex303 that separates demodulated video data and audio data or multiplexes encoded video data and audio data.
  • the television ex300 decodes each of the audio data and the video data, or encodes each information, an audio signal processing unit ex304, a signal processing unit ex306 including the video signal processing unit ex305, and outputs the decoded audio signal.
  • the television ex300 includes an interface unit ex317 including an operation input unit ex312 that receives an input of a user operation.
  • the television ex300 includes a control unit ex310 that controls each unit in an integrated manner, and a power supply circuit unit ex311 that supplies power to each unit.
  • the interface unit ex317 includes a bridge ex313 connected to an external device such as a reader / recorder ex218, a recording unit ex216 such as an SD card, and an external recording such as a hard disk.
  • a driver ex315 for connecting to a medium, a modem ex316 for connecting to a telephone network, and the like may be included.
  • the recording medium ex216 can record information electrically by using a nonvolatile / volatile semiconductor memory element to be stored.
  • Each part of the television ex300 is connected to each other via a synchronous bus.
  • the television ex300 receives a user operation from the remote controller ex220 and the like, and demultiplexes the video data and audio data demodulated by the modulation / demodulation unit ex302 by the multiplexing / separation unit ex303 based on the control of the control unit ex310 having a CPU and the like . Furthermore, in the television ex300, the separated audio data is decoded by the audio signal processing unit ex304, and the separated video data is decoded by the video signal processing unit ex305 using the decoding method described in the above embodiments. The decoded audio signal and video signal are output to the outside from the output unit ex309.
  • these signals may be temporarily stored in the buffers ex318, ex319, etc. so that the audio signal and the video signal are reproduced in synchronization.
  • the television ex300 may read the encoded bitstream encoded from the recording media ex215 and ex216 such as a magnetic / optical disk and an SD card, not from a broadcast or the like.
  • the television ex300 encodes an audio signal and a video signal and transmits them to the outside or writes them on a recording medium.
  • the television ex300 receives a user operation from the remote controller ex220 or the like, and encodes an audio signal with the audio signal processing unit ex304 based on the control of the control unit ex310, and converts the video signal with the video signal processing unit ex305.
  • Encoding is performed using the encoding method described in (1).
  • the encoded audio signal and video signal are multiplexed by the multiplexing / demultiplexing unit ex303 and output to the outside. When multiplexing, these signals may be temporarily stored in the buffers ex320 and ex321 so that the audio signal and the video signal are synchronized.
  • buffers ex318 to ex321 may be provided as shown in the figure, or one or more buffers may be shared. Further, in addition to the illustrated example, data may be stored in the buffer as a buffer material that prevents system overflow and underflow, for example, between the modulation / demodulation unit ex302 and the multiplexing / demultiplexing unit ex303.
  • the television ex300 In addition to acquiring audio data and video data from broadcast and recording media, the television ex300 has a configuration for receiving AV input of a microphone and a camera, and even if encoding processing is performed on the data acquired therefrom Good.
  • the television ex300 has been described as a configuration capable of the above-described encoding processing, multiplexing, and external output. However, these processing cannot be performed, and only the above-described reception, decoding processing, and external output are possible. It may be.
  • the decoding process or the encoding process may be performed by either the television ex300 or the reader / recorder ex218,
  • the ex300 and the reader / recorder ex218 may share each other.
  • FIG. 58 shows the configuration of the information reproducing / recording unit ex400 when data is read from or written to an optical disk.
  • the information reproducing / recording unit ex400 includes elements ex401 to ex407 described below.
  • the optical head ex401 writes information by irradiating a laser spot on the recording surface of the recording medium ex215 that is an optical disk, and reads information by detecting reflected light from the recording surface of the recording medium ex215.
  • the modulation recording unit ex402 electrically drives a semiconductor laser built in the optical head ex401 and modulates the laser beam according to the recording data.
  • the reproduction demodulator ex403 amplifies the reproduction signal obtained by electrically detecting the reflected light from the recording surface by the photodetector built in the optical head ex401, separates and demodulates the signal component recorded on the recording medium ex215, and is necessary. To play back information.
  • the buffer ex404 temporarily holds information to be recorded on the recording medium ex215 and information reproduced from the recording medium ex215.
  • the disk motor ex405 rotates the recording medium ex215.
  • the servo control unit ex406 moves the optical head ex401 to a predetermined information track while controlling the rotational drive of the disk motor ex405, and performs a laser spot tracking
  • the system control unit ex407 controls the entire information reproduction / recording unit ex400.
  • the system control unit ex407 uses various types of information held in the buffer ex404, and generates and adds new information as necessary, as well as the modulation recording unit ex402, the reproduction demodulation unit This is realized by recording / reproducing information through the optical head ex401 while operating the ex403 and the servo control unit ex406 in a coordinated manner.
  • the system control unit ex407 includes, for example, a microprocessor, and executes these processes by executing a read / write program.
  • the optical head ex401 has been described as irradiating a laser spot, but it may be configured to perform higher-density recording using near-field light.
  • FIG. 59 shows a schematic diagram of a recording medium ex215 that is an optical disk.
  • Guide grooves grooves
  • address information indicating the absolute position on the disc is recorded in advance on the information track ex230 by changing the shape of the groove.
  • This address information includes information for specifying the position of the recording block ex231 which is a unit for recording data, and the recording block is specified by reproducing the information track ex230 and reading the address information in a recording and reproducing apparatus.
  • the recording medium ex215 includes a data recording area ex233, an inner peripheral area ex232, and an outer peripheral area ex234.
  • the area used for recording the user data is the data recording area ex233, and the inner circumference area ex232 and the outer circumference area ex234 arranged on the inner circumference or outer circumference of the data recording area ex233 are used for specific purposes other than user data recording. Used.
  • the information reproducing / recording unit ex400 reads / writes encoded audio data, video data, or encoded data obtained by multiplexing these data with respect to the data recording area ex233 of the recording medium ex215.
  • an optical disk such as a single-layer DVD or BD has been described as an example.
  • the present invention is not limited to these, and an optical disk having a multilayer structure and capable of recording other than the surface may be used. It also has a structure that performs multidimensional recording / reproduction, such as recording information using light of various different wavelengths at the same location on the disc, and recording different layers of information from various angles. It may be an optical disk.
  • the car ex210 having the antenna ex205 can receive data from the satellite ex202 and the like, and the moving image can be reproduced on a display device such as the car navigation ex211 that the car ex210 has.
  • the configuration of the car navigation ex211 may include a configuration in which a GPS receiving unit is added in the configuration illustrated in FIG. 57, and the same may be applied to the computer ex111, the mobile phone ex114, and the like.
  • the mobile phone ex114 and the like can be used in three ways: a transmitting terminal having only an encoder and a receiving terminal having only a decoder. The implementation form of can be considered.
  • the image encoding method or the image decoding method shown in each of the above embodiments can be used in any of the above-described devices or systems, and by doing so, the effects described in the above embodiments can be obtained. Can be obtained.
  • the image decoding apparatus shown in the first embodiment is realized as an LSI that is typically a semiconductor integrated circuit.
  • the realized form is shown in FIG.
  • the frame memory 502 is realized on the DRAM, and other circuits and memories are configured on the LSI.
  • a bit stream buffer for storing the encoded stream may be realized on the DRAM.
  • LSI LSI
  • IC system LSI
  • super LSI ultra LSI depending on the degree of integration
  • the method of circuit integration is not limited to LSI, and implementation with a dedicated circuit or a general-purpose processor is also possible.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
  • a drawing device corresponding to various uses can be configured.
  • the present invention can be used as information drawing means in cellular phones, televisions, digital video recorders, digital video cameras, car navigation systems, and the like.
  • a display in addition to a cathode ray tube (CRT), a flat display such as a liquid crystal, a PDP (plasma display panel) and an organic EL, a projection display represented by a projector, and the like can be combined.
  • the LSI in the present embodiment cooperates with a DRAM (Dynamic Random Access Memory) including a bit stream buffer for storing an encoded stream and a frame memory for storing an image, thereby performing an encoding process or a decoding process. May be performed.
  • the LSI in the present embodiment may be linked with other storage devices such as eDRAM (embedded DRAM), SRAM (Static Random Access Memory), or hard disk instead of DRAM.
  • FIG. 61 shows a configuration of an LSI ex500 that is made into one chip.
  • the LSI ex500 includes elements ex502 to ex509 described below, and each element is connected via a bus ex510.
  • the power supply circuit unit ex505 starts up to an operable state by supplying power to each unit when the power supply is in an on state.
  • the LSI ex500 receives an AV signal input from the microphone ex117, the camera ex113, and the like by the AV I / Oex 509.
  • the input AV signal is temporarily stored in an external memory ex511 such as SDRAM.
  • the accumulated data is divided into a plurality of times as appropriate according to the processing amount and processing speed, and sent to the signal processing unit ex507.
  • the signal processing unit ex507 performs encoding of an audio signal and / or encoding of a video signal.
  • the encoding process of the video signal is the encoding process described in the above embodiment.
  • the signal processing unit ex507 further performs processing such as multiplexing the encoded audio data and the encoded video data according to circumstances, and outputs the result from the stream I / Oex 504 to the outside.
  • the output bit stream is transmitted to the base station ex107 or written to the recording medium ex215.
  • the LSI ex500 transmits the encoded data obtained from the base station ex107 or the recording medium ex215 by the stream I / Oex 504 based on the control of the microcomputer (microcomputer) ex502.
  • the encoded data obtained by reading is temporarily stored in the memory ex511 or the like.
  • the accumulated data is appropriately divided into a plurality of times according to the processing amount and the processing speed and sent to the signal processing unit ex507, where the signal processing unit ex507 decodes the audio data and / or the video data. Decryption is performed.
  • the decoding process of the video signal is the decoding process described in the above embodiments.
  • each signal may be temporarily stored in the memory ex511 or the like so that the decoded audio signal and the decoded video signal can be reproduced in synchronization.
  • the decoded output signal is output from the AVI / Oex 509 to the monitor ex219 or the like through the memory ex511 or the like as appropriate.
  • the memory controller ex503 is used.
  • the memory ex511 has been described as an external configuration of the LSI ex500. However, a configuration included in the LSI ex500 may be used.
  • the LSI ex500 may be made into one chip or a plurality of chips.
  • LSI LSI
  • IC system LSI
  • super LSI ultra LSI depending on the degree of integration
  • the method of circuit integration is not limited to LSI, and implementation with a dedicated circuit or a general-purpose processor is also possible.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
  • the image processing apparatus can be used for various purposes.
  • it can be used for high-resolution information display devices such as televisions, digital video recorders, car navigation systems, mobile phones, digital cameras, and digital video cameras, or imaging devices, and has high utility value.
  • Control unit 502 Frame memory 503 Variable length decoding unit 504 Inverse quantization unit 505 Inverse frequency transform unit 506 520 Motion compensation unit 507 521 710 In-plane prediction unit 508, 712 Reconstruction unit 509 Reconstructed image memory 510 Deblock filter unit 511, ex511 memory 601 Motion compensation block division unit 602 Reference image acquisition unit 603 Motion compensation operation unit 701 In-plane prediction block division unit 702 Reconstructed image acquisition unit 703 In-plane Prediction calculation unit 711 switch 2100, 2200, 2300, 2400, 2500 image processing apparatuses 2121, 2122, 2221, 2222, 2223, 2321, 2421, 2521 processing units 2111, 2111, 2111, 211 11, 2511 Multiple first processing units 2212 Multiple second processing units 2322 Motion compensation processing units 2422 In-plane prediction processing units 2522, 2611, 2711 Deblock filter processing units 2600, 2700, 2800 Image encoding devices 2610, 28

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

 画像を様々な符号化単位ブロックで符号化することにより得られる符号化ストリームに対して、パイプライン方式で複数の処理を効率的に施す画像処理装置を提供する。画像処理装置は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す画像処理装置であって、それぞれが複数の第1処理のいずれかを実行することによって、符号化ストリームに対してパイプライン方式で複数の第1処理を施す複数の第1処理部(2111)と、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割し、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部(2111)を制御する制御部(2110)とを備える。

Description

画像処理装置、画像符号化方法および画像処理方法
 本発明は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の処理を施す画像処理装置に関する。
 動画像を符号化する画像符号化装置は、動画像を構成する各ピクチャを16x16画素でそれぞれが構成される複数のマクロブロック(Macroblock、略してMBと呼ぶこともある)に分割する。そして、画像符号化装置は、ラスタースキャン順に各マクロブロックを符号化する。画像符号化装置は、動画像を符号化し圧縮することにより、符号化ストリームを生成する。画像復号装置は、この符号化ストリームをラスタースキャン順でマクロブロック毎に復号し、元の動画像の各ピクチャを再生する。
 従来の画像符号化方式の1つとしてITU-T H.264規格がある(例えば、非特許文献1を参照)。画像復号装置は、H.264規格で符号化された画像を復号するため、まず、符号化ストリームを読み込む。そして、画像復号装置は、各種ヘッダ情報を復号後、可変長復号を行う。画像復号装置は、可変長復号により得られた係数情報を逆量子化して、逆周波数変換する。これにより、差分画像が生成される。
 次に、画像復号装置は、可変長復号により得られたマクロブロックタイプに応じて、面内予測または動き補償を行う。これにより、画像復号装置は、予測画像を生成する。その後、画像復号装置は、予測画像に差分画像を加算することにより、再構成処理を行う。そして、画像復号装置は、再構成画像にデブロックフィルタ処理を行うことで復号対象画像を復号する。
 このようにして、画像復号装置は、可変長復号処理からデブロックフィルタ処理までをマクロブロック毎に行うことで、符号化された画像を復号していく。この復号処理を高速化する手法として、マクロブロック単位のパイプライン処理によって復号処理を実行する手法が一般に用いられている(例えば、特許文献1を参照)。マクロブロック単位のパイプライン処理では、可変長復号処理からデブロックフィルタ処理までの一連の処理がいくつかのステージに分割される。そして、各ステージの処理が並列に実行される。
 図62は、先に説明した復号処理を5つのステージに分割した場合のパイプライン処理の例である。図62に示す例では、1つのマクロブロックに対して、第1ステージから第5ステージまでの処理が、順次行われる。そして、互いに異なる複数のマクロブロックに対して、第1ステージから第5ステージまでの処理が、同時に行われる。
 第1ステージでは、画像復号装置は、符号化ストリームを可変長復号して、動きベクトルなどの符号化情報、および、各画素データに対応する係数情報を出力する。第2ステージでは、画像復号装置は、第1ステージで得られた係数情報に対して逆量子化および逆周波数変換を行い、差分画像を生成する。
 第3ステージでは、画像復号装置は、可変長復号して得られたマクロブロックタイプに応じて、動き補償を行って予測画像を生成する。第4ステージでは、画像復号装置は、第3ステージで得られた動き補償の予測画像、および、第4ステージで行う面内予測処理の予測画像のいずれかと、第2ステージで得られた差分画像とを用いて、再構成処理を行う。第5ステージでは、画像復号装置は、デブロックフィルタ処理を行う。
 このように、画像復号装置は、パイプライン処理を用いて、各ステージで異なる複数のマクロブロックを同時に処理する。これにより、画像復号装置は、並列処理を実現し、復号処理を高速化することができる。
 この時、パイプライン処理のタイムスロット(TS)のサイクルは、最も処理サイクルが長いステージの処理サイクルによって決定される。そのため、あるステージの処理サイクルだけが長くなってしまうと、他のステージは、その最長ステージの処理が完了するまで次のマクロブロックの処理を開始できない状態となる。したがって、無駄な空きが発生してしまう。パイプライン処理を効率的に動作させるには、パイプライン処理を構成する各処理サイクルをできるだけ均等になるように構成することが重要である。
 H.264規格に係る画像符号化装置は、先ほど述べた通り、16x16画素で構成されるマクロブロック単位で画像を符号化する。しかし、符号化の単位として16x16画素が、必ずしも最適とは限らない。一般に、画像の解像度が高くなるにつれて、隣接ブロック間の相関が高くなる。そのため、符号化の単位を大きくした方が、より圧縮効率を向上させることができる。
 近年、4K2K(3840画素×2160画素)等のように、超高精細なディスプレイの開発が行われてきている。したがって、扱う画像の解像度がますます高くなっていくことが予想される。H.264規格に係る画像符号化装置は、このように画像の高解像度化が進むにつれて、これらの高解像度の画像を効率的に符号化することができなくなってきている。
 一方、次世代の画像符号化規格として提案されている技術の中には、このような課題を解決する技術がある(非特許文献2)。この技術では、従来のH.264規格に対応する符号化単位ブロックのサイズが可変になる。そして、この技術に係る画像符号化装置は、従来の16x16画素よりも大きなブロックで画像を符号化することも可能であり、超高精細画像を適切に符号化することができる。
 具体的には、非特許文献2では、符号化のデータ単位として、符号化ユニット(CU:Coding Unit)が定義されている。この符号化ユニットは、従来の符号化規格におけるマクロブロックと同様に、面内予測を行うイントラ予測と、動き補償を行うインター予測とを切り替えることが可能なデータ単位であり、符号化の最も基本的なブロックサイズとして規定されている。
 この符号化ユニットのサイズは、4x4画素、8x8画素、16x16画素、32x32画素、64x64画素、および、128x128画素のいずれかである。最も大きな符号化ユニットは、最大符号化ユニット(LCU:Largest Coding Unit)と呼ばれる。
 64x64画素の符号化ユニットには、4096画素のデータが含まれる。128x128画素の符号化ユニットには、16384画素のデータが含まれる。すなわち、128x128画素の符号化ユニットには、64x64画素の符号化ユニットの4倍のデータが含まれる。
 図63は、128x128画素と64x64画素とで構成される複数の符号化ユニットの例を示す。非特許文献2において、さらに、周波数変換ユニット(TU:Transform Unit)が定義されている。周波数変換ユニットは、周波数変換のブロックサイズとして規定されている。具体的には、この周波数変換ユニットのサイズは、4x4画素、8x8画素、16x16画素、32x32画素、および、64x64画素のいずれかである。
 また、さらに、面内予測またはインター予測のデータ単位として、予測ユニット(PU:Prediction Unit)が定義されている。予測ユニットは、符号化ユニットの内部において、128x128画素、64x128画素、128x64画素、または、64x64画素など、4x4画素以上の様々な矩形サイズから、選択される。
特開2005-295526号公報
Thomas Wiegand et al、"Overview of the H.264/AVC Video Coding Standard"、IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY、JULY 2003、PP.1-19 「Test Model Under Consideration(TMuC)」、[online]、Joint Collaborative Team on Video Coding(JCT-VC)、2010年4月15日、[2010年8月27日検索]、インターネット<URL:http://wftp3.itu.int/av-arch/jctvc-site/2010_04_A_Dresden/JCTVC-A205.zip>
 以上のように、非特許文献2では、符号化ユニットすなわちマクロブロックのサイズを可変にすることにより符号化効率を向上させる技術が、述べられている。しかしながら、このような可変の符号化ユニットに対して、特許文献1で示されるパイプライン処理が適用された場合、符号化ユニットに含まれる画素数に比例して必要な処理量が増大する。また、処理サイクル数も同様に大きくなる。
 すなわち、符号化ストリーム内に異なるサイズの符号化ユニットが混在している場合、パイプライン処理の各ステージの処理サイクルが、符号化ユニットのサイズによって大きく変動してしまう。そのため、小さい符号化ユニットを処理するステージでは、何も処理できない待ち時間が発生する。そして、パイプラインの処理効率が低下してしまう。つまり、可変のサイズの符号化ユニットは、画像復号装置の処理効率の低下を招く原因となってしまう。
 例えば、図64には、5つのステージのパイプライン処理で符号化ストリームを復号する例が示されている。この例では、図63のように、CU0が128x128画素の符号化ユニットであり、次にCU1~CU4がそれぞれ64x64画素の符号化ユニットである。この場合、CU0が、CU1~CU4の4倍の画素数で構成される符号化ユニットであるため、CU0の処理サイクルが、他の符号化ユニットの処理サイクルの4倍になる。
 そのため、第1ステージのCU1の処理が完了してから、第2ステージのCU0の処理が完了するまで、第1ステージにおいて空き時間が生じている。同様に、第2ステージのCU1の処理が完了してから、第3ステージのCU0の処理が完了するまで、第2ステージにおいて空き時間が生じている。また、第3ステージのCU1の処理が完了してから、第4ステージのCU0の処理が完了するまで、第3ステージにおいて空き時間が生じている。すなわち、それぞれのステージで、処理が行われない空き時間が生じている。
 このように、符号化ユニットのサイズが変動すると、処理する画素データ量が増減する。符号化ストリームがパイプライン処理で復号される場合、画素データ量の大きい符号化ユニットによってパイプライン処理の単位時間が決定される。その結果、画素データ量の少ない符号化ユニットの処理後に空き時間が生じてしまう。したがって、処理効率および処理性能が低下する。
 そこで、本発明は、画像を様々な符号化単位ブロックで符号化することにより得られる符号化ストリームに対して、パイプライン方式で複数の処理を効率的に施す画像処理装置を提供することを目的とする。
 上記課題を解決するため、本発明に係る画像処理装置は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す画像処理装置であって、それぞれが前記複数の第1処理のいずれかを実行することによって、前記符号化ストリームに対して前記パイプライン方式で前記複数の第1処理を施す複数の第1処理部と、前記符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する制御部とを備える。
 これにより、複数の処理部は、ひとつのサイズに基づいて、符号化ストリームに対してパイプライン方式で複数の処理を施す。したがって、空き時間が削減され、動作効率が向上する。
 また、前記複数の第1処理部は、前記符号化ストリームに対して、前記画像を復号するための前記複数の第1処理を施してもよい。
 これにより、画像が効率的に復号される。
 また、前記制御部は、前記符号化ストリームを構成する符号化単位ブロックを分割することにより、または、前記符号化ストリームを構成する2以上の符号化単位ブロックをまとめることにより、前記符号化ストリームを前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御してもよい。
 これにより、複数の符号化単位ブロックから複数の処理単位ブロックが得られる。複数の処理単位ブロックは、それぞれがひとつのサイズで構成される。したがって、空き時間が削減され、動作効率が向上する。
 また、前記制御部は、前記複数の第1処理単位ブロックのそれぞれに対して前記複数の第1処理のそれぞれが所定の期間で実行されるように、前記複数の第1処理部を制御してもよい。
 これにより、複数の処理単位ブロックに対して、タイムスロット毎に、順次、複数の処理が施される。したがって、空き時間が削減され、動作効率が向上する。
 また、前記制御部は、それぞれが画面間予測と画面内予測との切り替え可能な最小単位である前記複数の符号化単位ブロックに前記画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる前記符号化ストリームを、前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御してもよい。
 これにより、符号化効率が高くなるように符号化単位ブロックで符号化された画像が、処理効率が高くなるように処理単位ブロックで処理される。
 また、前記制御部は、前記符号化ストリームを、最も大きい符号化単位ブロックのサイズとして予め定められた前記第1サイズでそれぞれが構成される前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御してもよい。
 これにより、複数の符号化単位ブロックが、ひとつの処理単位ブロックとして扱われる。したがって、空き時間が削減され、動作効率が向上する。
 また、前記制御部は、前記符号化ストリームを、前記最も大きい符号化単位ブロックである最大符号化ユニット(Largest Coding Unit)のサイズとして予め定められた前記第1サイズでそれぞれが構成される前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御してもよい。
 これにより、複数の処理部は、規格等で予め定められたサイズに基づいて、符号化ストリームに対してパイプライン方式で複数の処理を施す。したがって、空き時間が削減され、動作効率が向上する。
 また、前記制御部は、前記符号化ストリームを、最も大きい周波数変換ブロックのサイズとして予め定められた前記第1サイズでそれぞれが構成される前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御してもよい。
 これにより、パイプライン処理がより小さいサイズで実行される。したがって、動作効率が向上する。
 また、前記複数の第1処理部は、前記複数の第1処理に含まれる複数の第2処理を実行する複数の第2処理部を含み、前記制御部は、前記複数の第1処理単位ブロックを、前記第1サイズよりも小さい第2サイズでそれぞれが構成される複数の第2処理単位ブロックに分割し、前記複数の第2処理が第2処理単位ブロック毎に実行されるように、前記複数の第2処理部を制御してもよい。
 これにより、パイプライン処理がより小さいサイズで実行される。したがって、動作効率がさらに向上する。
 また、前記複数の第1処理部は、前記複数の第1処理に含まれる複数の第2処理を実行する複数の第2処理部を含み、前記制御部は、前記複数の第1処理単位ブロックを、それぞれのサイズが前記第1サイズ以下である複数の第2処理単位ブロックに分割し、前記複数の第2処理が第2処理単位ブロック毎に実行されるように、前記複数の第2処理部を制御してもよい。
 これにより、パイプライン処理がより小さいサイズで実行される。したがって、動作効率がさらに向上する。
 また、前記制御部は、輝度情報と色差情報とが分割されるように、前記複数の第1処理単位ブロックを前記複数の第2処理単位ブロックに分割し、前記複数の第2処理が第2処理単位ブロック毎に実行されるように、前記複数の第2処理部を制御してもよい。
 これにより、輝度情報と色差情報とが別々に処理される。したがって、パイプライン処理が小さいサイズで実行され、動作効率が向上する。
 また、前記複数の第1処理部は、動き補償処理を実行する動き補償処理部を含み、前記制御部は、前記複数の第1処理単位ブロックを、前記第1サイズよりも小さい第3サイズでそれぞれが構成される複数の第3処理単位ブロックに分割し、前記動き補償処理が第3処理単位ブロック毎に実行されるように、前記動き補償処理部を制御し、前記制御部は、前記輝度情報と前記色差情報とが1つの第3処理単位ブロックに含まれるように、前記複数の第1処理単位ブロックを前記複数の第3処理単位ブロックに分割してもよい。
 これにより、動き補償処理において、輝度情報と色差情報とが一緒に処理される。したがって、動作の無駄が削減される。
 また、前記複数の第1処理部は、動き補償処理を実行する動き補償処理部を含み、前記制御部は、前記動き補償処理に用いられる予測ブロックが前記第1サイズよりも大きい場合、前記予測ブロックを複数の第1処理単位ブロックに分割し、前記動き補償処理が第1処理単位ブロック毎に実行されるように、前記動き補償処理部を制御してもよい。
 これにより、動き補償処理部と他の処理部との間で交換される情報量が、さらに低減される。したがって、回路規模の縮小が可能になる。
 また、前記複数の第1処理部は、面内予測処理を実行する面内予測処理部を含み、前記制御部は、前記面内予測処理に用いられる予測ブロックが前記第1サイズよりも大きい場合、前記予測ブロックを複数の第1処理単位ブロックに分割し、前記面内予測処理が第1処理単位ブロック毎に実行されるように、前記面内予測処理部を制御してもよい。
 これにより、面内予測処理部と他の処理部との間で交換される情報量が、さらに低減される。したがって、回路規模の縮小が可能になる。
 また、前記複数の第1処理部は、ブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を実行するデブロックフィルタ処理部を含み、前記制御部は、前記画像が符号化される時に周波数変換処理が実行された順序に従って、前記デブロックフィルタ処理が周波数変換ブロック毎に実行されるように、前記デブロックフィルタ処理部を制御してもよい。
 これにより、デブロックフィルタ処理が、小さいサイズで実行される。したがって、空き時間が削減され、動作効率が向上する。
 また、本発明に係る画像符号化方法は、画像を符号化する画像符号化方法であって、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに前記画像を分割し、前記画像に対して符号化単位ブロック毎に符号化処理を実行する符号化処理ステップと、前記符号化処理が実行された前記画像に含まれるブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を、符号化単位ブロック毎とは異なる所定のデータ単位毎に、垂直境界および水平境界のうち、一方に対して実行した後、他方に対して実行するデブロックフィルタ処理ステップとを含む画像符号化方法でもよい。
 これにより、デブロックフィルタ処理の処理サイクルが平坦化され、デブロックフィルタ処理が円滑に実行される。また、デブロックフィルタ処理に適したサイズでデブロックフィルタ処理が実行されるため、処理効率が向上する。
 また、本発明に係る画像符号化方法は、画像を符号化する画像符号化方法であって、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに前記画像を分割し、前記画像に対して符号化単位ブロック毎に符号化処理を実行する符号化処理ステップと、前記画像に対して前記符号化処理が実行された順序に従って、ブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を符号化単位ブロック毎に実行するデブロックフィルタ処理ステップとを含む画像符号化方法でもよい。
 これにより、デブロックフィルタ処理と、前段の処理との間の空き時間が削減される。したがって、動作効率が向上する。また、典型的には、符号化側と復号側とで同じ順序が用いられる。したがって、復号側の動作効率も向上する。
 また、本発明に係る画像符号化方法は、画像を符号化単位ブロック毎に符号化する画像符号化方法であって、前記画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割し、前記符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する周波数変換処理ステップと、前記符号化単位ブロックに対して前記周波数変換処理が実行された順序に従って、ブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を周波数変換ブロック毎に実行するデブロックフィルタ処理ステップとを含む画像符号化方法でもよい。
 これにより、デブロックフィルタ処理が、小さいサイズで実行される。したがって、空き時間が削減され、動作効率が向上する。
 また、本発明に係る画像符号化方法は、画像を符号化単位ブロック毎に符号化する画像符号化方法であって、前記画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割し、前記符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する周波数変換処理ステップと、前記周波数変換処理が実行された前記符号化単位ブロックを符号化して、前記画像の輝度情報および色差情報が周波数変換ブロック毎に一緒にまとまるように符号化ストリームを生成する符号化処理ステップとを含む画像符号化方法でもよい。
 これにより、復号側でも、輝度情報および色差情報を分けることなく、周波数変換ブロックのデータ単位でパイプライン処理が実行可能になる。したがって、動作効率が向上する。
 また、本発明に係る画像処理方法は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す画像処理方法であって、それぞれが前記複数の第1処理のいずれかを実行することによって、前記符号化ストリームに対して前記パイプライン方式で前記複数の第1処理を施す複数の第1処理ステップと、前記符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理ステップを制御する制御ステップとを含む画像処理方法でもよい。
 これにより、前記画像処理装置が画像処理方法として実現される。
 また、本発明に係るプログラムは、前記画像処理方法に含まれるステップをコンピュータに実行させるためのプログラムでもよい。
 これにより、前記画像処理方法がプログラムとして実現される。
 また、本発明に係る集積回路は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す集積回路であって、それぞれが前記複数の第1処理のいずれかを実行することによって、前記符号化ストリームに対して前記パイプライン方式で前記複数の第1処理を施す複数の第1処理部と、前記符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する制御部とを備える集積回路でもよい。
 これにより、前記画像処理装置が集積回路として実現される。
 本発明により、画像を様々な符号化単位ブロックで符号化することにより得られる符号化ストリームに対して、複数の処理がパイプライン方式で効率的に施される。
図1は、実施の形態1に係る画像復号装置の構成を示す構成図である。 図2は、実施の形態1に係る画像復号装置の可変長復号部と逆量子化部との接続を示す構成図である。 図3Aは、実施の形態1に係るシーケンスを示す図である。 図3Bは、実施の形態1に係るピクチャを示す図である。 図3Cは、実施の形態1に係る符号化ストリームを示す図である。 図4Aは、実施の形態1に係る符号化ユニットの第1構成例を示す図である。 図4Bは、実施の形態1に係る符号化ユニットの第2構成例を示す図である。 図5Aは、実施の形態1に係る周波数変換ユニットの第1構成例を示す図である。 図5Bは、実施の形態1に係る周波数変換ユニットの第2構成例を示す図である。 図6Aは、実施の形態1に係る符号化ユニットのヘッダを示す図である。 図6Bは、実施の形態1に係る予測ユニットを示す図である。 図7Aは、実施の形態1に係る動作の説明に用いられる複数の符号化ユニットの構成例を示す図である。 図7Bは、実施の形態1に係る動作の説明に用いられる複数の符号化ユニットの詳細を示す図である。 図8は、実施の形態1に係る画像復号装置の動作を示すフローチャートである。 図9は、実施の形態1に係る符号化ユニットの復号処理を示すフローチャートである。 図10は、実施の形態1に係る画像復号装置の動作を示すタイムチャートである。 図11は、実施の形態2に係る画像復号装置の動作を示すタイムチャートである。 図12は、実施の形態3に係る画像復号装置の構成を示す構成図である。 図13は、実施の形態3に係る動き補償部の構成を示す構成図である。 図14は、実施の形態3に係る面内予測部の構成を示す構成図である。 図15は、実施の形態3に係る動き補償部の動作を示すフローチャートである。 図16は、実施の形態3に係る予測ユニットと参照画像との関係を示す図である。 図17は、実施の形態3に係る分割ブロックの動き補償処理を示す図である。 図18は、実施の形態3に係る第1分割ブロックと参照画像との関係を示す図である。 図19は、実施の形態3に係る第2分割ブロックと参照画像との関係を示す図である。 図20は、実施の形態3に係る第3分割ブロックと参照画像との関係を示す図である。 図21は、実施の形態3に係る第4分割ブロックと参照画像との関係を示す図である。 図22は、実施の形態3に係る面内予測部の動作を示すフローチャートである。 図23は、実施の形態3に係る分割ブロックの面内予測処理を示す図である。 図24は、実施の形態3に係る画像復号装置の動作を示すタイムチャートである。 図25は、実施の形態1に係るデブロックフィルタ処理の順序の例を示す図である。 図26は、実施の形態4に係るデブロックフィルタ処理の順序の第1例を示す図である。 図27は、実施の形態4に係るデブロックフィルタ処理の順序の第2例を示す図である。 図28は、実施の形態4に係る画像復号装置の動作を示すタイムチャートである。 図29は、実施の形態5に係る画像復号装置の構成を示す構成図である。 図30は、実施の形態5に係る面内予測部の構成を示す構成図である。 図31は、実施の形態5に係る動作の説明に用いられる複数の符号化ユニットの構成例を示す図である。 図32は、実施の形態5に係る面内予測部の動作を示すフローチャートである。 図33は、実施の形態6に係る周波数変換ユニットの構成例を示す図である。 図34は、実施の形態6に係る画像復号装置の動作を示すタイムチャートである。 図35は、実施の形態6に係る可変長復号部の動作を示すフローチャートである。 図36は、実施の形態6に係る逆量子化部の動作を示すフローチャートである。 図37は、実施の形態7に係る画像復号装置の動作を示すタイムチャートである。 図38は、実施の形態8に係る画像処理装置の構成を示す構成図である。 図39は、実施の形態8に係る画像処理装置の動作を示すフローチャートである。 図40は、実施の形態9に係る画像処理装置の構成を示す構成図である。 図41は、実施の形態9に係る画像処理装置の動作を示すフローチャートである。 図42は、実施の形態10に係る画像処理装置の構成を示す構成図である。 図43は、実施の形態10に係る画像処理装置の動作を示すフローチャートである。 図44は、実施の形態11に係る画像処理装置の構成を示す構成図である。 図45は、実施の形態11に係る画像処理装置の動作を示すフローチャートである。 図46は、実施の形態12に係る画像処理装置の構成を示す構成図である。 図47は、実施の形態12に係る画像処理装置の動作を示すフローチャートである。 図48は、実施の形態13に係る画像符号化装置の構成を示す構成図である。 図49は、実施の形態13に係る画像符号化装置の動作を示すフローチャートである。 図50は、実施の形態14に係る画像符号化装置の構成を示す構成図である。 図51は、実施の形態14に係る画像符号化装置の動作を示すフローチャートである。 図52は、実施の形態15に係る画像符号化装置の構成を示す構成図である。 図53は、実施の形態15に係る画像符号化装置の動作を示すフローチャートである。 図54は、実施の形態15に係る周波数変換ユニットの構成例を示す図である。 図55は、コンテンツ配信サービスを実現するコンテンツ供給システムの全体構成図である。 図56は、デジタル放送用システムの全体構成図である。 図57は、テレビの構成例を示すブロック図である。 図58は、光ディスクである記録メディアに情報の読み書きを行う情報再生/記録部の構成例を示すブロック図である。 図59は、光ディスクである記録メディアの構造例を示す図である。 図60は、画像復号処理を実現する集積回路の構成例を示す構成図である。 図61は、画像復号処理および画像符号化処理を実現する集積回路の構成例を示す構成図である。 図62は、従来技術に係るパイプライン処理を示す説明図である。 図63は、従来技術に係る可変サイズのブロックを示す説明図である。 図64は、従来技術に係る可変サイズのブロックに対してパイプライン処理が適用された場合の動作を示す説明図である。
 以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも本発明の好ましい一具体例を示す。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。本発明は、請求の範囲だけによって限定される。よって、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、本発明の課題を達成するのに必ずしも必要ではないが、より好ましい形態を構成するものとして説明される。
 また、128x128画素、および、64x64画素等の表現は、それぞれ、128画素x128画素、および、64画素x64画素等のサイズを意味する。
 また、以下において、ブロック、データ単位および符号化ユニット(CU)等の表現は、それぞれ、まとまった領域を意味する。それらは、それぞれ、画像領域を意味する場合もある。あるいは、それらは、それぞれ、符号化ストリームにおけるデータ領域を意味する場合もある。
 また、画像は、動画像、静止画像、動画像を構成する複数のピクチャ、1つのピクチャ、および、ピクチャの一部等のいずれでもよい。
 (実施の形態1)
  (1-1.概要)
 まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
 その際、画像復号装置は、最大符号化ユニット(LCU:Largest Coding Unit)のサイズで、複数の処理を行う。なお、最大符号化ユニットは、符号化ストリームを構成する複数の符号化ユニットのうち最も大きい符号化ユニットである。
 これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、処理性能が向上する。
 以上が、本実施の形態に係る画像復号装置の概要についての説明である。
  (1-2.構成)
 次に、本実施の形態に係る画像復号装置の構成について説明する。
 図1は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置は、制御部501、フレームメモリ502、再構成画像メモリ509、可変長復号部503、逆量子化部504、逆周波数変換部505、動き補償部506、面内予測部507、再構成部508およびデブロックフィルタ部510を備える。
 制御部501は、全体を制御する。フレームメモリ502は、復号された画像データを記憶するためのメモリである。再構成画像メモリ509は、生成された再構成画像の一部を記憶するためのメモリである。可変長復号部503は、符号化ストリームを読み込み、可変長符号を復号する。逆量子化部504は、逆量子化を行う。逆周波数変換部505は、逆周波数変換を行う。
 動き補償部506は、フレームメモリ502から参照画像を読み出して、動き補償を行い、予測画像を生成する。面内予測部507は、再構成画像メモリ509から参照画像を読み出して、面内予測(イントラ予測ともいう)を行い、予測画像を生成する。再構成部508は、差分画像と予測画像とを加算して再構成画像を生成し、その一部を再構成画像メモリ509に格納する。デブロックフィルタ部510は、再構成画像のブロックノイズを除去し、再構成画像を高画質化する。
 図2は、可変長復号部503と逆量子化部504との接続を示す構成図である。図1と同様の構成要素には同じ符号を割り当て、説明を省略する。本実施の形態の可変長復号部503と逆量子化部504とは、係数を記憶するためのメモリ511を介してそれぞれが接続されるように、構成される。図2は、可変長復号部503と逆量子化部504との接続のみを示しているが、図1に示す各処理部の間は同様の構成で接続される。
 以上が、本実施の形態に係る画像復号装置の構成についての説明である。
  (1-3.動作)
 次に、本実施の形態に係る画像復号装置の動作を説明する。本実施の形態に係る画像復号装置が復号する符号化ストリームは、符号化ユニット(CU)と、周波数変換ユニット(TU)と、予測ユニット(PU)とで構成される。
 符号化ユニット(CU)は、128x128画素~8x8画素のサイズで設定され、面内予測とインター予測との切り替え可能なデータ単位である。周波数変換ユニット(TU)は、符号化ユニット(CU)の内部で64x64画素~4x4画素のサイズで設定される。予測ユニット(PU)は、符号化ユニット(CU)の内部で128x128画素~4x4画素のサイズで設定され、面内予測のモード、または、インター予測の動きベクトルを有する。以下、図3A~図6Bを用いて符号化ストリームの構成について説明する。
 図3Aおよび図3Bは、本実施の形態に係る画像復号装置が復号する符号化ストリームの、階層的な構成を示している。図3Aに示すように、複数のピクチャをひとまとまりにしたものをシーケンスと呼ぶ。また、図3Bに示すように、各ピクチャはスライスに分割され、各スライスはさらに符号化ユニット(CU)に分割される。ピクチャはスライスに分割されない場合もある。
 本実施の形態において、最大符号化ユニット(LCU)のサイズは、128x128画素である。また、128x128画素の符号化ユニット(CU)と、64x64画素の符号化ユニット(CU)とが混在している。
 図3Cは、本実施の形態に係る符号化ストリームを示す図である。図3Aおよび図3Bに示されたデータが階層的に符号化されることにより、図3Cに示された符号化ストリームが得られる。
 図3Cに示された符号化ストリームは、シーケンスを制御するシーケンスヘッダ、ピクチャを制御するピクチャヘッダ、スライスを制御するスライスヘッダ、および、符号化ユニットレイヤデータ(CUレイヤデータ)で構成される。H.264規格では、シーケンスヘッダをSPS(Sequence Parameter Set)、ピクチャヘッダをPPS(Picture Parameter Set)と呼んでいる。
 次に、本実施の形態の説明に使用する符号化ユニットと符号化ストリームの構成について、図4Aおよび図4Bを用いて説明する。符号化ストリームは、CU分割フラグとCUデータで構成される。このCU分割フラグは、「1」の場合、ブロックを4分割することを示し、「0」の場合、ブロックを4分割しないことを示す。図4Aのように、128x128画素の符号化ユニットの場合、ブロックは分割されない。すなわち、CU分割フラグは「0」である。
 図4Bに示すように64x64画素の4つの符号化ユニットの場合、最初のCU分割フラグは「1」である。この最初のCU分割フラグにより、128x128画素のブロックが少なくとも64x64画素の4つのブロックに分割されることが示される。そして、64x64画素の4つのブロックのそれぞれは分割されないため、後続のCU分割フラグは、「0」である。このようにして、符号化ユニットのサイズは、CU分割フラグによって、128x128画素から4x4画素までのいずれかに特定される。
 図5Aおよび図5Bは、それぞれ、本実施の形態に係る周波数変換ユニットの構成例を示す。各符号化ユニットのCUデータは、さらに、CUヘッダ、TU分割フラグ、係数情報で構成される。CUヘッダについては後述する。TU分割フラグは、符号化ユニットの中で周波数変換ユニットのサイズを示し、CU分割フラグと同様に、階層的にそのサイズを4分割するか否かを示す。
 図5Aは、128x128画素の符号化ユニットが、64x64画素の4つの周波数変換ユニットで構成される場合の例を示す。128x128画素の符号化ユニットの場合、周波数変換ユニットは最大が64x64画素であるので、必ず4分割される。図5Aの場合、それぞれの64x64画素のブロックは分割されない。そのため、TU分割フラグは、全て「0」である。
 図5Bは、128x128画素の符号化ユニットが、64x64画素の3つの周波数変換ユニット、および、32x32画素の4つの周波数変換ユニットで構成される例を示す。この場合、「1」の値を有するTU分割フラグが存在する。
 図5Aおよび図5Bの各周波数変換ユニットには、輝度データ(輝度情報)および色差データ(色差情報)が含まれている。つまり、符号化ストリームにおいて、輝度データおよび色差データの両方を含む係数情報が周波数変換ユニット毎にまとめられている。
 次に、CUヘッダについて説明する。図6Aに示すように、CUヘッダは、CUタイプを含み、さらに、動きベクトルまたは面内予測モードを含む。CUタイプによって、予測ユニットのサイズが決定される。図6Bは、128x128画素、64x128画素、128x64画素、および、64x64画素の予測ユニットを示す。予測ユニットのサイズは、4x4画素以上のサイズから選択可能である。また、予測ユニットの形状は、長方形でもよい。予測ユニット毎に動きベクトルまたは面内予測モードが指定される。
 次に、本実施の形態に係る画像復号装置の動作を具体的に説明する。図7Aおよび図7Bは、動作の説明に用いられる複数の符号化ユニットの構成例を示す。図7Aに示された8つの符号化ユニット(CU0~CU7)が動作の説明のために用いられる。
 図7Bに示すように、CU0、CU5~CU7は、128x128画素で構成される符号化ユニットである。CU1~CU4は、64x64画素で構成される符号化ユニットである。CU4の周波数変換ユニットのサイズは32x32画素である。他の周波数変換ユニットのサイズは全て64x64画素である。CU0の予測ユニットのサイズは、128x128画素であり、CU1~CU4の予測ユニットのサイズは、64x64画素であり、CU5~CU7の予測ユニットのサイズは、128x128画素である。
 次に、図8に示すフローチャートを用いて、図1に示した画像復号装置の動作を説明する。図8は、符号化ストリームに含まれる1シーケンスの復号動作を示すフローチャートである。図8に示すように、画像復号装置は、まず、シーケンスヘッダを復号する(S901)。その際、可変長復号部503は、制御部501の制御に基づいて、符号化ストリームを復号する。次に、画像復号装置は、同様に、ピクチャヘッダを復号し(S902)、スライスヘッダを復号する(S903)。
 次に、画像復号装置は、符号化ユニットを復号する(S904)。符号化ユニットの復号については後で詳しく説明する。画像復号装置は、符号化ユニットの復号後、復号された符号化ユニットがスライス最後の符号化ユニットであるか否かを判定する(S905)。そして、復号された符号化ユニットがスライス最後の符号化ユニットでない場合、再度、画像復号装置は、次の符号化ユニットを復号する(S904)。
 さらに、画像復号装置は、復号された符号化ユニットを含むスライスがピクチャ最後のスライスであるか否かを判定する(S906)。そして、ピクチャ最後のスライスでない場合、画像復号装置は、再度、スライスヘッダを復号する(S903)。
 さらに、画像復号装置は、復号された符号化ユニットを含むピクチャがシーケンス最後のピクチャであるか否かを判定する(S907)。そして、シーケンス最後のピクチャでない場合、画像復号装置は、再度、ピクチャヘッダを復号する(S902)。画像復号装置は、シーケンスの全てのピクチャの復号後、一連の復号動作を終了する。
 次に、図9に示すフローチャートを用いて、図8の符号化ユニットの復号(S904)の動作を説明する。図9は、1つの符号化ユニットの復号動作を示すフローチャートである。
 まず、可変長復号部503は、入力された符号化ストリームに含まれる処理対象の符号化ユニットについて、可変長復号を行う(S1001)。可変長復号処理(S1001)では、可変長復号部503は、符号化ユニットタイプ、面内予測(イントラ予測)モード、動きベクトル情報および量子化パラメータなどの符号化情報を出力し、各画素データに対応する係数情報を出力する。符号化情報は、制御部501に出力され、その後、各処理部に入力される。係数情報は、次の逆量子化部504に出力される。次に、逆量子化部504は、逆量子化処理を行う(S1002)。その後、逆周波数変換部505は、逆周波数変換を行って差分画像を生成する(S1003)。
 次に、制御部501は、処理対象の符号化ユニットにインター予測が用いられるか、面内予測が用いられるかの判定を行う(S1004)。インター予測が用いられる場合、制御部501により動き補償部506が起動し、動き補償部506が1/2画素精度または1/4画素精度等の予測画像を生成する(S1005)。一方、インター予測が用いられない場合、すなわち、面内予測が用いられる場合、制御部501により面内予測部507が起動し、面内予測部507が面内予測の処理を行い、予測画像を生成する(S1006)。
 再構成部508は、動き補償部506または面内予測部507が出力する予測画像と、逆周波数変換部505が出力する差分画像とを加算することにより、再構成画像を生成する(S1007)。
 生成された再構成画像は、デブロックフィルタ部510に入力される。同時に、面内予測で用いられる部分は、再構成画像メモリ509に格納される。最後に、デブロックフィルタ部510は、得られた再構成画像に対して、ブロックノイズを低減するためのデブロックフィルタ処理を行う。そして、デブロックフィルタ部510は、フレームメモリ502に結果を格納する(S1008)。以上で、符号化ユニットの復号動作を終了する。
 ここで、図9に示すフローチャートに示す各処理を、図9の点線で示すように複数のステージに分割する。画像復号装置は、これらの第1ステージから第5ステージまでの複数のステージにおいて、ステージ毎にそれぞれ異なる複数の最大符号化ユニットに対して、複数の処理を同時に行う。これにより、並列処理が実現され、性能が向上する。このような処理をパイプライン処理と呼ぶ。
 図9の例では、第1ステージは、可変長復号処理(S1001)を含む。第2ステージは、逆量子化処理(S1002)と逆周波数変換処理(S1003)とを含む。第3ステージは、動き補償処理(S1005)を含む。第4ステージは、面内予測処理(S1006)と再構成処理(S1007)とを含む。第5ステージは、デブロックフィルタ処理(S1008)を含む。
 これらの複数のステージに分割された複数の処理が、ステージ毎に互いに異なる複数の最大符号化ユニットに対して、パイプライン方式で実行される。本実施の形態に係る画像復号装置に含まれる各処理部は、1つのステージにおいて、最大符号化ユニット内の全ての符号化ユニットに対して処理を行う。
 つまり、128x128画素の最大符号化ユニット内に128x128画素の1つの符号化ユニットしかない場合、各処理部は、1つのステージにおいて、1つの符号化ユニットの処理を行う。128x128画素の最大符号化ユニット内に64x64画素の4つの符号化ユニットがある場合、各処理部は、1つのステージにおいて、4つの符号化ユニットの全てに対して処理を行う。
 図10は、本実施の形態に係る画像復号装置の時系列の動作を示す図である。図10は、図9のように複数の処理が複数のステージに分割され、かつ、複数の符号化ユニットが図7Aのように構成されている場合の動作を示す。
 TS=0では、CU0に対して第1ステージの可変長復号処理(S1001)が行われる。
 TS=1では、CU0に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われると同時に、CU1~CU4に対して第1ステージの可変長復号処理(S1001)が行われる。
 TS=2では、CU0に対して第3ステージの動き補償処理(S1005)が行われ、CU1~CU4に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。また、同時に、CU5に対して第1ステージの可変長復号処理(S1001)が行われる。
 TS=3では、CU0に対して第4ステージの面内予測処理(S1006)と再構成処理(S1007)が行われ、CU1~CU4に対して第3ステージの動き補償処理(S1005)が行われる。また、同時に、CU5に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU6に対して第1ステージの可変長復号処理(S1001)が行われる。
 TS=4では、CU0に対して第5ステージのデブロックフィルタ処理(S1008)が行われ、CU1~4に対して第4ステージの面内予測処理(S1006)と再構成処理(S1007)が行われる。また、同時に、CU5に対して第3ステージの動き補償処理(S1005)が行われ、CU6に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。また、同時に、CU7に対して第1ステージの可変長復号処理(S1001)が行われる。この結果、CU0の復号処理が全て完了する。
 TS=5では、CU1~CU4に対して第5ステージのデブロックフィルタ処理(S1008)が行われ、CU5に対して第4ステージの面内予測処理(S1006)と再構成処理(S1007)が行われる。また、同時に、CU6に対して第3ステージの動き補償処理(S1005)が行われ、CU7に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。また、同時に、CU8に対して第1ステージの可変長復号処理(S1001)が行われる。この結果、CU1~CU4の復号処理が全て完了する。
 ここで、図10のTS=5の第5ステージのデブロックフィルタ処理(S1008)について、CU1~CU4が分けて記載されていない。これは次のような理由による。
 本実施の形態に係るデブロックフィルタ処理は、図25に示す番号の順序で実行される。具体的には、垂直の境界に対して先にデブロックフィルタ処理が行われ、次に水平の境界に対してデブロックフィルタ処理が行われる。
 従って、CU1、CU2、CU3、CU4の順ではなく、CU1~CU4の全ての垂直境界に対してデブロックフィルタ処理が実行された後に、CU1~CU4の全ての水平境界に対してデブロックフィルタ処理が実行される。
 TS=6以降は、TS=5までと同様であるので説明を省略する。
 本実施の形態では、従来の動作を示す図64と比較して、パイプラインの各ステージで処理されるデータ量が一定になっている。そのため、処理の空き時間が削減され、効率的にパイプライン処理が実行されている。
 ここで、TS=0において、CU0の可変長復号処理(S1001)が行われる。また、TS=1において、CU0の逆量子化処理(S1002)が行われ、同時に、CU1~CU4の可変長復号処理(S1001)が行われる。
 これらの処理は、図2に示すように、可変長復号部503と逆量子化部504の間に、メモリ511が配置されることにより実現される。具体的には、TS=0において、可変長復号部503は、CU0の可変長復号処理の結果をメモリ511に書き込む。TS=1において、逆量子化部504は、可変長復号部503により書き込まれた結果をメモリ511から読み出す。そして、逆量子化部504は、CU0に対して逆量子化処理を行う。
 同時に、TS=1において、可変長復号部503は、CU1~CU4の可変長復号処理の結果をメモリ511に書き込む。メモリ511には、最大符号化ユニットの処理に必要なデータを記憶できるメモリ容量が少なくとも必要である。
 可変長復号部503と逆量子化部504との間のみが説明されているが、他の処理部間にも同様のメモリが配置されてもよい。また、制御部501内に同様のメモリが配置されてもよい。
 以上が、本実施の形態に係る画像復号装置の動作についての説明である。
  (1-4.効果)
 本実施の形態に示された画像復号装置は、最大符号化ユニットのデータ単位で、パイプライン処理を実行する。これにより、各ステージで処理されるデータ量が一定になる。したがって、パイプラインの各ステージの処理時間が一定になる。よって、効率的にパイプライン処理が実行される。その結果、処理性能が向上する。また、効率的に回路が動作することにより、低消費電力化も可能になる。
  (1-5.補足)
 なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
 また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
 また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素~8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
 また、本実施の形態に示されたパイプライン処理の構成は一例である。必ずしも本実施の形態のように、複数の処理が複数のステージに分割されなくてもよい。例えば、いくつかの処理が1つのステージで実現されてもよいし、1つの処理がいくつかのステージに分割されても構わない。
 また、本実施の形態において、可変長符号が用いられている。可変長符号の符号化方式は、ハフマン符号、ランレングス符号または算術符号など、どのような符号化方式であっても構わない。
 また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
 また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
 また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
 また、本実施の形態において、復号処理の例が示されている。しかし、パイプライン処理は、復号処理に限定されない。復号処理の逆の処理である符号化処理が、本実施の形態と同様に、最大符号化ユニット毎にパイプライン方式で実行されてもよい。これにより、本実施の形態と同様に効率的にパイプライン処理が実行される。
 また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
 また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
 また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
 (実施の形態2)
  (2-1.概要)
 まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
 その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。また、符号化ストリームにおける各周波数変換ユニットには、輝度データ(輝度情報)および色差データ(色差情報)が含まれる。
 これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。また、実施の形態1に比べて処理部間のメモリ容量を削減することが可能である。
 以上が、本実施の形態に係る画像復号装置の概要についての説明である。
  (2-2.構成)
 図1は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置の構成は、実施の形態1と同様であるので、説明を省略する。
 図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態1と同様であるので、説明を省略する。
  (2-3.動作)
 本実施の形態では、実施の形態1と同様に、図3A~図6Bに示された符号化ストリームの構造が用いられる。また、実施の形態1と同様に、図7Aおよび図7Bに示された複数の符号化ユニットの構成が例として用いられる。本実施の形態に係る画像復号装置の動作フローは、図8および図9に示された実施の形態1の動作フローと同様であるので、説明を省略する。
 本実施の形態と実施の形態1との違いは、図9に示されたフローチャートの各ステージの動作タイミングの違いである。
 図11は、本実施の形態に係る画像復号装置の時系列の動作を示す。図11には、図7Aに示された複数の符号化ユニットについての処理の動作が示されている。説明のため、CU0を4分割することにより得られた64x64画素の4つの領域のうち、左上の領域をCU0aと呼び、右上の領域をCU0bと呼び、左下の領域をCU0cと呼び、右下の領域をCU0dと呼ぶ。
 TS=0では、CU0aに対して第1ステージの可変長復号処理(S1001)が行われる。CU0aは、符号化ユニットの先頭である。そのため、CUヘッダの処理も合わせて行われる。
 TS=1では、CU0aに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0bに対して第1ステージの可変長復号処理(S1001)が行われる。
 TS=2では、CU0に対して第3ステージの動き補償処理(S1005)が行われ、CU0bに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0cに対して第1ステージの可変長復号処理(S1001)が行われる。
 ここで、CU0の予測ユニットのサイズは、128x128画素である。そのため、動き補償処理(S1005)は、128x128画素のサイズで実行される。したがって、動き補償処理(S1005)は、4つのタイムスロットを占用する。そして、動き補償処理(S1005)は、TS=5まで行われる。
 TS=3では、CU0に対して第3ステージの動き補償処理(S1005)がTS=2から継続して行われ、CU0cに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0dに対して第1ステージの可変長復号処理(S1001)が行われる。
 TS=4では、CU0に対して第3ステージの動き補償処理(S1005)がTS=2から継続して行われ、CU0dに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU1に対して第1ステージの可変長復号処理(S1001)が行われる。
 TS=5では、CU0に対して第3ステージの動き補償処理(S1005)がTS=2から継続して行われ、CU1に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU2に対して第1ステージの可変長復号処理(S1001)が行われる。
 TS=6では、CU0に対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU1に対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU2に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU3に対して第1ステージの可変長復号処理(S1001)が行われる。
 TS=7以降は、TS=6までと同様であるので、説明を省略する。
 本実施の形態において、図5Aおよび図5Bのように、符号化ユニットのサイズが128x128画素である場合、必ず周波数変換ユニットのサイズは64x64画素以下である。そして、64x64画素のデータ単位で、順次、符号化ストリームが形成されている。したがって、周波数変換ユニットの最大のサイズである64x64画素のデータ単位でパイプライン処理が実行されている。
 本実施の形態では、従来の動作を示す図64と比較して、パイプラインの各ステージで処理されるデータ量が一定になっている。そのため、処理の空き時間が削減され、効率的にパイプライン処理が実行されている。
 ここで、TS=0において、CU0aの可変長復号処理(S1001)が行われる。また、TS=1において、CU0aの逆量子化処理(S1002)が行われ、同時に、CU0bの可変長復号処理(S1001)が行われる。
 これらの処理は、図2に示すように、可変長復号部503と逆量子化部504の間に、メモリ511が配置されることにより実現される。具体的には、TS=0において、可変長復号部503は、CU0aの可変長復号処理の結果をメモリ511に書き込む。TS=1において、逆量子化部504は、可変長復号部503により書き込まれた結果をメモリ511から読み出す。そして、逆量子化部504は、CU0aに対して逆量子化処理を行う。
 同時に、TS=1において、可変長復号部503は、CU0bの可変長復号処理の結果をメモリ511に書き込む。メモリ511は、パイプライン処理を実行するためのデータ単位を記憶できるメモリ容量を有していればよい。本実施の形態のデータ単位は、最も大きい周波数変換ユニットであり、そのサイズは、64x64画素である。すなわち、データ単位が128x128画素の最大符号化ユニットである実施の形態1と比較して、本実施の形態に係るメモリ容量は、少なくてもよい。
 上述では、可変長復号部503と逆量子化部504との間のみが説明されているが、他の処理部間も同様のメモリが配置されてもよい。また、制御部501内に同様のメモリが配置されてもよい。また、本実施の形態において、第3ステージの動き補償以降では、最大符号化ユニットでパイプラインが構成されている。そのため、これら処理について、実施の形態1と同様に、少なくとも128x128画素の最大符号化ユニットの処理に必要なデータを記憶できるメモリ容量が必要である。
 以上が、本実施の形態に係る画像復号装置の動作についての説明である。
  (2-4.効果)
 本実施の形態に示す画像復号装置は、最も大きい周波数変換ユニットのデータ単位で、パイプライン処理を実行する。
 図5Aおよび図5Bの各周波数変換ユニットには、輝度データ(輝度情報)および色差データ(色差情報)が含まれる。そのため、輝度データおよび色差データを分けることなく、図11のように、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位でパイプラインを構成することが可能になる。つまり、128x128画素の符号化ユニット、および、64x64画素の符号化ユニットが混在する場合でも、各ステージで処理されるデータ量が一定になる。
 したがって、パイプラインの各ステージの処理時間が一定になる。よって、効率的にパイプライン処理が実行される。その結果、処理性能が向上する。また、効率的に回路が動作することにより、低消費電力化も可能になる。
 また、実施の形態1と比べて、最も大きい周波数変換ユニットでパイプライン処理が実行される。最も大きい周波数変換ユニットは、最大符号化ユニットよりも小さい。したがって、処理部間のメモリ容量を小さくすることが可能になり、回路規模を小さくすることが可能になる。
  (2-5.補足)
 なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
 また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
 また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素~8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
 また、本実施の形態に示されたパイプライン処理の構成は一例である。必ずしも本実施の形態のように、複数の処理が複数のステージに分割されなくてもよい。例えば、いくつかの処理が1つのステージで実現されてもよいし、1つの処理がいくつかのステージに分割されても構わない。
 また、本実施の形態において、可変長符号が用いられている。可変長符号の符号化方式は、ハフマン符号、ランレングス符号または算術符号など、どのような符号化方式であっても構わない。
 また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
 また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
 また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
 一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
 また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
 また、本実施の形態において、符号化ユニットの符号量がゼロであるスキップブロックの存在が示されていない。しかし、スキップブロックが存在する場合でも、本実施の形態に係る画像復号装置は、最も大きい周波数変換ユニットのサイズでパイプライン処理を実行してもよい。
 また、本実施の形態において、復号処理の例が示されている。しかし、パイプライン処理は、復号処理に限定されない。復号処理の逆の処理である符号化処理が、本実施の形態と同様に、最も大きい周波数変換ユニット毎にパイプライン方式で実行されてもよい。これにより、本実施の形態と同様に効率的にパイプライン処理が実行される。
 また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
 また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
 また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
 (実施の形態3)
  (3-1.概要)
 まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
 その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。
 また、画像復号装置は、復号処理に含まれる複数の処理を行う際、動き補償処理または面内予測処理に用いられる予測ユニットを周波数変換ユニットのサイズで分割する。
 これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。また、実施の形態1および実施の形態2に比べて処理部間のメモリ容量を削減することが可能になる。
 以上が、本実施の形態に係る画像復号装置の概要についての説明である。
  (3-2.構成)
 次に、本実施の形態に係る画像復号装置の構成について説明する。
 図12は、本実施の形態に係る画像復号装置の構成図である。図1に示された実施の形態1の構成要素と同様の構成要素には同じ符号を割り当て、説明を省略する。本実施の形態に係る画像復号装置は、動き補償部520および面内予測部521を備える。動き補償部520は、最も大きい周波数変換ユニットのサイズ以下のサイズで予測ユニットを分割して動き補償処理を行う。面内予測部521は、最も大きい周波数変換ユニットのサイズ以下のサイズで予測ユニットを分割して面内予測処理を行う。
 図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態1と同様であるので、説明を省略する。
 図13は、図12の動き補償部520の構成を示す。図12に示された構成要素と同様の構成要素には同じ符号を割り当て、説明を省略する。動き補償部520は、動き補償ブロック分割部601、参照画像取得部602および動き補償演算部603を備える。動き補償ブロック分割部601は、予測ユニットを分割する。参照画像取得部602は、フレームメモリ502から参照画像を取得する。動き補償演算部603は、動き補償処理を行う。
 図14は、図12の面内予測部521の構成を示す。図12に示された構成要素と同様の構成要素には同じ符号を割り当て、説明を省略する。面内予測部521は、面内予測ブロック分割部701、再構成画像取得部702および面内予測演算部703を備える。面内予測ブロック分割部701は、予測ユニットを分割する。再構成画像取得部702は、再構成画像メモリ509から再構成画像を取得する。面内予測演算部703は、面内予測処理を行う。
 以上が、本実施の形態に係る画像復号装置の構成についての説明である。
  (3-3.動作)
 本実施の形態では、実施の形態1と同様に、図3A~図6Bに示された符号化ストリームの構造が用いられる。また、実施の形態1と同様に、図7Aおよび図7Bに示された複数の符号化ユニットの構成が例として用いられる。本実施の形態に係る画像復号装置の動作フローは、図8および図9に示された実施の形態1の動作フローと、動き補償処理(S1005)および面内予測処理(S1006)を除いて、同様であるので、説明を省略する。以下、動き補償処理(S1005)と面内予測処理(S1006)について、説明する。
 本実施の形態の動き補償部520による動き補償処理(S1005)の動作を図15に示すフローチャートを用いて説明する。まず、動き補償ブロック分割部601は、予測ユニットが64x64画素よりも大きいか否かを判定する(S1100)。
 予測ユニットが64x64画素よりも大きくない場合(S1100でNo)、通常の動き補償処理と同様の処理が実行される。すなわち、参照画像取得部602は、参照画像を取得し(S1105)、動き補償演算部603は、動き補償の演算を行う(S1106)。
 予測ユニットが64x64画素よりも大きい場合(S1100でYes)、動き補償ブロック分割部601は、予測ユニットを64x64画素の複数の分割ブロックに分割する(S1101)。次に、参照画像取得部602は、分割ブロック毎に参照画像を取得する(S1102)。動き補償演算部603は、分割ブロック毎に動き補償の演算を行う(S1103)。次に、動き補償ブロック分割部601は、未処理の分割ブロックがあるか否かを判定する(S1104)。
 未処理の分割ブロックがある場合(S1104でYes)、参照画像取得部602は、参照画像を取得し(S1102)、動き補償演算部603は、動き補償の演算を行う(S1103)。未処理の分割ブロックがない場合(S1104でNo)、動き補償部520は処理を終了する。
 次に、以上の動き補償の動作を、具体例を使って説明する。図16は、予測ユニットが128x128画素である場合の動き補償の動作を示している。この例では、復号対象ピクチャの符号化ユニットの予測ユニットが128x128画素サイズで、動きベクトルがvである。動き補償処理では、参照ピクチャ内において、動きベクトルが指す128x128画素のブロックが参照画像として用いられる。
 この例において、まず、動き補償ブロック分割部601は、予測ユニットを、実施の形態2で示された最も大きい周波数変換ユニットのサイズである64x64画素の4つの分割ブロックに分割する。図17に示す通り、各分割ブロックの動きベクトルは、128x128画素の予測ユニットの動きベクトルと同じでよい。つまり、各分割ブロックの動きベクトルは、全てvでよい。ここで、予測ユニットの左上に位置するブロックをCU0a、右上に位置するブロックをCU0b、左下に位置するブロックをCU0c、右下に位置するブロックをCU0dと呼ぶ。
 次に、参照画像取得部602は、CU0aの位置と、CU0aの動きベクトルと、参照インデックスとによって特定される画像をフレームメモリ502から取得する。CU0aの動きベクトルはvである。したがって、図18に示される通り、取得される参照画像は、元の128x128画素サイズの予測ユニットについての参照画像である128x128画素ブロックに含まれる左上の64x64画素ブロックである。参照画像取得部602は、この64x64画素ブロックをフレームメモリ502から取得する。
 参照画像の取得の完了後、動き補償演算部603がCU0aの動き補償を行い、予測画像を生成する。動き補償演算部603は、動きベクトルが小数画素位置を指す場合、取得された参照画像にフィルタ処理を行って予測画像を生成する。動きベクトルが整数画素位置を指す場合、動き補償演算部603は、取得された参照画像をそのまま予測画像として出力する。以上で、CU0aの動き補償が完了する。
 同様に、参照画像取得部602は、CU0bの動き補償に用いられる参照画像をフレームメモリ502から取得する。CU0bの動きベクトルはvである。したがって、図19に示される通り、取得される参照画像は、元の128x128画素サイズの予測ユニットについての参照画像である128x128画素ブロックに含まれる右上の64x64画素ブロックである。参照画像の取得の完了後、動き補償演算部603がCU0bの動き補償を行い、予測画像を生成する。以上で、CU0bの動き補償が完了する。
 同様に、参照画像取得部602は、CU0cの動き補償に用いられる参照画像をフレームメモリ502から取得する。CU0cの動きベクトルはvである。したがって、図20に示される通り、取得される参照画像は、元の128x128画素サイズの予測ユニットについての参照画像である128x128画素ブロックに含まれる左下の64x64画素ブロックである。参照画像の取得の完了後、動き補償演算部603がCU0cの動き補償を行い、予測画像を生成する。以上で、CU0cの動き補償が完了する。
 同様に、参照画像取得部602は、CU0dの動き補償に用いられる参照画像をフレームメモリ502から取得する。CU0dの動きベクトルはvである。したがって、図21に示される通り、取得される参照画像は、元の128x128画素サイズの予測ユニットについての参照画像である128x128画素ブロックに含まれる右下の64x64画素ブロックである。参照画像の取得の完了後、動き補償演算部603がCU0dの動き補償を行い、予測画像を生成する。以上で、CU0dの動き補償が完了する。
 以上で、CU0a~CU0dの動き補償が完了し、動きベクトルがvである予測ユニットの動き補償の動作が完了する。
 次に、本実施の形態の面内予測部521による面内予測処理(S1006)の動作を図22に示すフローチャートを用いて説明する。まず、面内予測ブロック分割部701は、予測ユニットが64x64画素よりも大きいか否かを判定する(S1800)。
 予測ユニットが64x64画素よりも大きくない場合(S1800でNo)、通常の面内予測処理と同様の処理が実行される。すなわち、再構成画像取得部702は、再構成画像を取得し(S1805)、面内予測演算部703は、面内予測の演算を行う(S1806)。
 予測ユニットが64x64画素よりも大きい場合(S1800でYes)、面内予測ブロック分割部701は、予測ユニットを64x64画素の4つの分割ブロックに分割する(S1801)。次に、再構成画像取得部702は、分割ブロック毎に参照画像を取得し(S1802)、面内予測演算部703は、分割ブロック毎に面内予測の演算を行う(S1803)。次に、面内予測ブロック分割部701は、未処理の分割ブロックがあるか否かを判定する(S1804)。
 未処理の分割ブロックがある場合(S1804でYes)、再構成画像取得部702は再構成画像を取得し(S1802)、面内予測演算部703は面内予測の演算を行う(S1803)。未処理の分割ブロックがない場合(S1804でNo)、面内予測部521は処理を終了する。
 次に、上述の面内予測の動作を、具体例を使って説明する。図23は、面内予測の予測ユニットのサイズが128x128画素である場合の面内予測の動作を示している。この例では、図23の(a)に示す通り、面内予測モードが「128x128垂直予測モード」である。そのため、面内予測は、復号対象予測ユニットの上に隣接し128x1画素のサイズを有する再構成画像ブロックを用いて処理が行われる。具体的には、復号対象予測ユニットの上に隣接する再構成画像ブロック内の画素値を下方向にコピーすることにより、予測画像が得られる。
 図23の例において、まず、面内予測ブロック分割部701が、予測ユニットを64x64画素の分割ブロックに分割する。元の予測ユニットは、各分割ブロックよりも大きく、128x128画素のブロックである。各分割ブロックの面内予測モードは、64x64画素の面内予測モードである。より具体的には、各分割ブロックの面内予測モードは、全て「64x64垂直予測モード」である。ここで、予測ユニットの左上に位置するブロックをCU0a、右上に位置するブロックをCU0b、左下に位置するブロックをCU0c、右下に位置するブロックをCU0dと呼ぶ。
 次に、再構成画像取得部702は、CU0aの位置と、CU0aの面内予測モードとに基づいて、CU0aの参照画像を再構成画像メモリ509から取得する。取得される再構成画像の位置とサイズは、以下の手順で決定する。
 元の予測ユニットの面内予測モードは、「128x128垂直予測モード」である。再構成画像取得部702は、予測ユニット内のCU0aの領域の面内予測で参照される再構成画像の位置とサイズを計算して、再構成画像を取得する。この例では、図23の(b)に示される通り、取得される再構成画像は、CU0aの上に隣接する64x1画素ブロックである。再構成画像取得部702は、CU0aの上に隣接する64x1画素ブロックの位置とサイズを、取得される再構成画像の位置とサイズとして決定する。
 再構成画像取得部702は、以上の手順で、取得される再構成画像の位置とサイズを決定した後、CU0aの上に隣接する64x1画素ブロックを再構成画像メモリ509から取得する。
 再構成画像の取得の完了後、面内予測演算部703が、取得された再構成画像を用いて、CU0aの面内予測を行い、予測画像を生成する。この時、面内予測モードが「128x128垂直予測モード」であるため、面内予測演算部703が、取得された64x1画素ブロックの画素値を下方向にコピーして予測画像を生成する。以上で、CU0aの面内予測が完了する。
 同様に、再構成画像取得部702は、CU0bの面内予測で参照される再構成画像を再構成画像メモリ509から取得する。元の予測ユニットの面内予測モードは、「128x128垂直予測モード」である。したがって、取得される再構成画像は、図23の(c)に示される通り、CU0bの上に隣接する64x1画素ブロックである。
 再構成画像の取得の完了後、面内予測演算部703は、取得された再構成画像を用いて、CU0bの面内予測を行い、予測画像を生成する。この時、面内予測モードが「128x128垂直予測モード」であるため、面内予測演算部703は、取得された64x1画素ブロックの画素値を下方向にコピーして予測画像を生成する。以上で、CU0bの面内予測が完了する。
 同様に、再構成画像取得部702は、CU0cの面内予測で参照される再構成画像を再構成画像メモリ509から取得する。元の予測ユニットの面内予測モードは、「128x128垂直予測モード」である。したがって、取得される再構成画像は、図23の(d)に示される通り、CU0aの上に隣接する64x1画素ブロックである。
 再構成画像の取得の完了後、面内予測演算部703は、取得された再構成画像を用いて、CU0cの面内予測を行い、予測画像を生成する。この時、面内予測モードが「128x128垂直予測モード」であるため、面内予測演算部703は、取得された64x1画素ブロックの画素値を下方向にコピーして予測画像を生成する。以上で、CU0cの面内予測が完了する。
 同様に、再構成画像取得部702は、CU0dの面内予測で参照される再構成画像を再構成画像メモリ509から取得する。元の予測ユニットの面内予測モードは、「128x128垂直予測モード」である。したがって、取得される再構成画像は、図23の(e)に示される通り、CU0bの上に隣接する64x1画素ブロックである。
 再構成画像の取得の完了後、面内予測演算部703は、取得された再構成画像を用いて、CU0dの面内予測を行い、予測画像を生成する。この時、面内予測モードが「128x128垂直予測モード」であるため、面内予測演算部703は、取得された64x1画素ブロックの画素値を下方向にコピーして予測画像を生成する。以上で、CU0dの面内予測が完了する。
 以上で、CU0a~CU0dの面内予測が完了する。すなわち、面内予測モードが「128x128垂直予測モード」である予測ユニットの面内予測の動作が完了する。
 本実施の形態では、動き補償処理または面内予測処理に用いられる予測ユニットが分割される。これにより、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、動き補償処理および面内予測処理を含むパイプライン処理が実行される。
 ここでは、最も大きい周波数変換ユニットのサイズである64x64画素よりも予測ユニットのサイズが大きい場合の例のみが示されている。64x64画素よりも予測ユニットのサイズが小さい場合、予測ユニットは分割されなくてもよい。その場合、64x64画素のブロックに含まれる全ての予測ユニットに対して、動き補償および面内予測の処理が実行されればよい。
 また、64x64画素の境界をまたぐ予測ユニットが存在する場合、画像復号装置は、その予測ユニットを64x64画素の境界で複数のブロックに分割し、上述の動作と同様に、64x64画素のデータ単位で、動き補償および面内予測の処理を実行すればよい。
 図24は、本実施の形態に係る画像復号装置の時系列の動作を示す。図24には、図7Aに示された複数の符号化ユニットを処理する際の動作が示されている。説明のため、CU0を4分割することにより得られた64x64画素の4つの領域のうち、左上の領域をCU0aと呼び、右上の領域をCU0bと呼び、左下の領域をCU0cと呼び、右下の領域をCU0dと呼ぶ。
 TS=0では、CU0aに対して第1ステージの可変長復号処理(S1001)が行われる。CU0aは、符号化ユニットの先頭である。そのため、CUヘッダの処理も合わせて行われる。
 TS=1では、CU0aに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0bに対して第1ステージの可変長復号処理(S1001)が行われる。
 TS=2では、CU0aに対して第3ステージの動き補償処理(S1005)が行われ、CU0bに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0cに対して第1ステージの可変長復号処理(S1001)が行われる。ここで、予測ユニットは、128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
 TS=3では、CU0aに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU0bに対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU0cに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU0dに対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは、128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
 TS=4では、CU0bに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU0cに対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU0dに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU1に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
 TS=5では、CU0cに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU0dに対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU1に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU2に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
 TS=6では、CU0dに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU1に対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU2に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU3に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
 TS=7以降は、TS=6までと同様であるので、説明を省略する。
 本実施の形態において、図5Aおよび図5Bのように、符号化ユニットのサイズが128x128画素である場合、必ず周波数変換ユニットのサイズは64x64画素以下である。そして、64x64画素のデータ単位で、順次、符号化ストリームが形成されている。したがって、周波数変換ユニットの最大のサイズである64x64画素のデータ単位でパイプライン処理が実行されている。
 さらに、64x64画素よりも大きい予測ユニットを分割することにより、動き補償処理および面内予測処理も、64x64画素のデータ単位で実行されている。
 本実施の形態では、従来の動作を示す図64と比較して、パイプラインの各ステージで処理されるデータ量が一定になっている。そのため、処理の空き時間が削減され、効率的にパイプライン処理が実行されている。
 ここで、TS=0において、CU0aの可変長復号処理(S1001)が行われ、TS=1において、CU0aの逆量子化処理(S1002)が行われ、同時に、CU0bの可変長復号処理(S1001)が行われる。
 これらの処理は、図2に示すように、可変長復号部503と逆量子化部504の間に、メモリ511が配置されることにより実現される。具体的には、TS=0において、可変長復号部503は、CU0aの可変長復号処理の結果をメモリ511に書き込む。TS=1において、逆量子化部504は、可変長復号部503により書き込まれた結果をメモリ511から読み出す。そして、逆量子化部504は、CU0aに対して逆量子化処理を行う。
 同時に、TS=1において、可変長復号部503は、CU0bの可変長復号処理の結果をメモリ511に書き込む。メモリ511は、パイプライン処理を実行するためのデータ単位を記憶できるメモリ容量を有していればよい。本実施の形態のデータ単位は、最も大きい周波数変換ユニットであり、そのサイズは、64x64画素である。すなわち、データ単位が128x128画素の最大符号化ユニットである実施の形態1と比較して、本実施の形態に係るメモリ容量は、少なくてもよい。
 上述では、可変長復号部503と逆量子化部504との間のみが説明されているが、他の処理部間も同様のメモリが配置されてもよい。また、制御部501内に同様のメモリが配置されてもよい。また、本実施の形態において、第5ステージのデブロックフィルタ処理では、最大符号化ユニットでパイプラインが構成されている。そのため、この処理について、実施の形態1と同様に、少なくとも128x128画素の最大符号化ユニットの処理に必要なデータを記憶できるメモリ容量が必要である。
 以上が、本実施の形態に係る画像復号装置の動作についての説明である。
  (3-4.効果)
 本実施の形態に示す画像復号装置は、最も大きい周波数変換ユニットのデータ単位で、パイプライン処理を実行する。これにより、各ステージで処理されるデータ量が一定になる。したがって、パイプラインの各ステージの処理時間が一定になる。よって、効率的にパイプライン処理が実行される。その結果、処理性能が向上する。また、効率的に回路が動作することにより、低消費電力化も可能になる。
 また、実施の形態2と比べて、動き補償処理および面内予測処理についても、最も大きい周波数変換ユニットのデータ単位で、パイプライン処理が実行される。最も大きい周波数変換ユニットは、最大符号化ユニットよりも小さい。したがって、処理部間のメモリ容量を小さくすることが可能になり、回路規模を小さくすることが可能になる。
  (3-5.補足)
 なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
 また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
 また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素~8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
 また、本実施の形態に示されたパイプライン処理の構成は一例である。必ずしも本実施の形態のように、複数の処理が複数のステージに分割されなくてもよい。例えば、いくつかの処理が1つのステージで実現されてもよいし、1つの処理がいくつかのステージに分割されても構わない。
 また、本実施の形態において、可変長符号が用いられている。可変長符号の符号化方式は、ハフマン符号、ランレングス符号または算術符号など、どのような符号化方式であっても構わない。
 また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
 また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
 また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
 一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
 また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
 また、本実施の形態において、符号化ユニットの符号量がゼロであるスキップブロックの存在が示されていない。しかし、スキップブロックが存在する場合でも、本実施の形態に係る画像復号装置は、最も大きい周波数変換ユニットのサイズでパイプライン処理を実行してもよい。また、スキップブロックが存在する場合でも、本実施の形態に係る画像復号装置は、動き補償または面内予測に用いられる予測ユニットを最も大きい周波数変換ユニットのサイズで分割してもよい。
 また、本実施の形態において、参照画像のフィルタ処理に必要な周辺画素について、言及されていない。しかし、画像復号装置は、過去に復号されたピクチャから参照画像を取得する際、必要に応じて、フィルタ処理に用いられる周辺画素を取得しても構わない。
 また、本実施の形態において、復号処理の例が示されている。しかし、パイプライン処理は、復号処理に限定されない。復号処理の逆の処理である符号化処理が、本実施の形態と同様に、パイプライン方式で実行されてもよい。これにより、メモリ容量が低減され、回路規模が削減される。
 また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
 また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
 また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
 (実施の形態4)
  (4-1.概要)
 まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
 その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。
 また、本実施の形態では、符号化ストリームにおけるデブロックフィルタ処理が、H.264規格で定められた順序とは異なる順序で実行される。そして、動き補償処理、面内予測処理、デブロックフィルタ処理が、周波数変換ユニットのサイズで実行される。
 これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。また、実施の形態3に比べて処理部間のメモリ容量をさらに削減することが可能になる。
 以上が、本実施の形態に係る画像復号装置の概要についての説明である。
  (4-2.構成)
 図12は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置の構成は、実施の形態3と同様であるので、説明を省略する。
 図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態3と同様であるので、説明を省略する。
  (4-3.動作)
 本実施の形態における画像復号装置の動作は、図8および図9のフローチャートに示された動作と同様であり、実施の形態3の動作と同様であるが、デブロックフィルタ処理(S1008)が異なる。
 本実施の形態に係る画像復号装置は、図7Aに示されたCU1~CU4に対して、図26に示された番号の順にデブロックフィルタ処理を行う。つまり、デブロックフィルタ部510は、CU1の垂直境界、CU1の水平境界、CU2の垂直境界、CU2の水平境界、CU3の垂直境界、CU3の水平境界、CU4の垂直境界、CU4の水平境界の順にデブロックフィルタ処理を行う。
 これにより、再構成部508がCU1の再構成処理(S1007)を完了した後、直ちに、デブロックフィルタ部510がCU1のデブロックフィルタ処理(S1008)を行うことができる。そして、再構成部508とデブロックフィルタ部510の間には、64x64画素のデータ単位を記憶できるメモリがあればよい。
 また、同様に、本実施の形態に係る画像復号装置は、図7Aに示されたCU0に対して、図27に示された番号の順にデブロックフィルタ処理を行う。つまり、デブロックフィルタ部510は、CU0aの垂直境界、CU0aの水平境界、CU0bの垂直境界、CU0bの水平境界、CU0cの垂直境界、CU0cの水平境界、CU0dの垂直境界、CU0dの水平境界の順にデブロックフィルタ処理を行う。
 これにより、再構成部508がCU0aの再構成処理(S1007)を完了した後、直ちに、デブロックフィルタ部510がCU0aのデブロックフィルタ処理(S1008)を行うことができる。なお、CU0aは、CU0を4分割することにより得られた64x64画素の4つの領域のうち、左上の領域である。同様に、CU0bは右上の領域であり、CU0cは左下の領域であり、CU0dは右下の領域である。
 図28は、本実施の形態に係る画像復号装置の時系列の動作を示す。図28には、図7Aに示された複数の符号化ユニットを処理する際の動作が示されている。
 TS=0では、CU0aに対して第1ステージの可変長復号処理(S1001)が行われる。CU0aは、符号化ユニットの先頭である。そのため、CUヘッダの処理も合わせて行われる。
 TS=1では、CU0aに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0bに対して第1ステージの可変長復号処理(S1001)が行われる。
 TS=2では、CU0aに対して第3ステージの動き補償処理(S1005)が行われ、CU0bに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU0cに対して第1ステージの可変長復号処理(S1001)が行われる。ここで、予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
 TS=3では、CU0aに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われ、CU0bに対して第3ステージの動き補償処理(S1005)が行われる。同時に、CU0cに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われ、CU0dに対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
 TS=4では、CU0aに対して第5ステージのデブロックフィルタ処理(S1008)が行われ、CU0bに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われる。同時に、CU0cに対して第3ステージの動き補償処理(S1005)が行われ、CU0dに対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU1に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
 TS=5では、CU0bに対して第5ステージのデブロックフィルタ処理(S1008)が行われ、CU0cに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われる。同時に、CU0dに対して第3ステージの動き補償処理(S1005)が行われ、CU1に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU2に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
 TS=6では、CU0cに対して第5ステージのデブロックフィルタ処理(S1008)が行われ、CU0dに対して第4ステージの面内予測処理(S1006)および再構成処理(S1007)が行われる。同時に、CU1に対して第3ステージの動き補償処理(S1005)が行われ、CU2に対して第2ステージの逆量子化処理(S1002)と逆周波数変換処理(S1003)が行われる。同時に、CU3に対して第1ステージの可変長復号処理(S1001)が行われる。ここで、CU0の予測ユニットは128x128画素のサイズであるが、先に説明したように、64x64画素のデータ単位に分割されている。
 TS=7以降は、TS=6までと同様であるので、説明を省略する。
 本実施の形態では、従来の動作を示す図64と比較して、パイプラインの各ステージで処理されるデータ量が一定になっている。そのため、処理の空き時間が削減され、効率的にパイプライン処理が実行されている。
 ここで、TS=0において、CU0aの可変長復号処理(S1001)が行われ、TS=1において、CU0aの逆量子化処理(S1002)が行われ、同時に、CU0bの可変長復号処理(S1001)が行われる。
 これらの処理は、図2に示すように、可変長復号部503と逆量子化部504の間に、メモリ511が配置されることにより実現される。具体的には、TS=0において、可変長復号部503は、CU0aの可変長復号処理の結果をメモリ511に書き込む。TS=1において、逆量子化部504は、可変長復号部503により書き込まれた結果をメモリ511から読み出す。そして、逆量子化部504は、CU0aに対して逆量子化処理を行う。
 同時に、TS=1において、可変長復号部503は、CU0bの可変長復号処理の結果をメモリ511に書き込む。メモリ511は、パイプラインを実行するためのデータ単位を記憶できるメモリ容量を有していればよい。本実施の形態のデータ単位は、最も大きい周波数変換ユニットであり、そのサイズは、64x64画素である。すなわち、データ単位が128x128画素の最大符号化ユニットである実施の形態1と比較して、本実施の形態に係るメモリ容量は、少なくてもよい。
 上述では、可変長復号部503と逆量子化部504との間のみが説明されているが、他の処理部間も同様のメモリが配置されてもよい。また、制御部501内に同様のメモリが配置されてもよい。また、本実施の形態において、全てが64x64画素の最も大きい周波数変換ユニットのサイズでパイプラインが構成されている。そのため、実施の形態1~3に比べて、メモリ容量を小さくすることが可能である。
 以上が、本実施の形態に係る画像復号装置の動作についての説明である。
  (4-4.効果)
 本実施の形態に示す画像復号装置は、最も大きい周波数変換ユニットのデータ単位で、パイプライン処理を実行する。これにより、各ステージで処理されるデータ量が一定になる。したがって、パイプラインの各ステージの処理時間が一定になる。よって、効率的にパイプライン処理が実行される。その結果、処理性能が向上する。また、効率的に回路が動作することにより、低消費電力化も可能になる。
 また、実施の形態3と比べて、デブロックフィルタ処理の処理順序が変更されている。そして、デブロックフィルタ処理についても、最も大きい周波数変換ユニットのデータ単位で、パイプライン処理が実行される。最も大きい周波数変換ユニットは、最大符号化ユニットよりも小さい。したがって、処理部間のメモリ容量を小さくすることが可能になり、回路規模を小さくすることが可能になる。
  (4-5.補足)
 なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
 また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
 また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素~8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
 また、本実施の形態に示されたパイプライン処理の構成は一例である。必ずしも本実施の形態のように、複数の処理が複数のステージに分割されなくてもよい。例えば、いくつかの処理が1つのステージで実現されてもよいし、1つの処理がいくつかのステージに分割されても構わない。
 また、本実施の形態において、可変長符号が用いられている。可変長符号の符号化方式は、ハフマン符号、ランレングス符号または算術符号など、どのような符号化方式であっても構わない。
 また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
 また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
 また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
 一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
 また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
 また、本実施の形態において、デブロックフィルタ処理の処理順序の変更が、実施の形態3に係る画像復号装置に適用されている。しかし、デブロックフィルタ処理の処理順序の変更が、実施の形態1または実施の形態2に係る画像復号装置に適用されても構わない。
 また、本実施の形態において、デブロックフィルタ処理が、CU1の垂直境界に対して行われた後、水平境界に対して行われている。しかし、デブロックフィルタ処理の順序は、上述の順序に限られず、どのような順序であってもよい。
 また、本実施の形態において、符号化ユニットの符号量がゼロであるスキップブロックの存在が示されていない。しかし、スキップブロックが存在する場合でも、本実施の形態に係る画像復号装置は、最も大きい周波数変換ユニットのサイズでパイプライン処理を実行してもよい。また、スキップブロックが存在する場合でも、本実施の形態に係る画像復号装置は、動き補償または面内予測に用いられる予測ユニットを最も大きい周波数変換ユニットのサイズで分割してもよい。
 また、本実施の形態において、複数の符号化ユニットは、ラスター順に符号化されている。しかし、H.264規格に係る任意スライス順序(ASO:Arbitrary Slice Order)では、複数の符号化ユニットは、ラスター順で符号化されていない。このような場合、画像復号装置は、スライス境界に対してデブロックフィルタ処理を行わず、スライス内部に対してのみデブロックフィルタ処理を行う。これにより、本実施の形態と同様の処理順序およびパイプライン処理が実現可能となる。
 また、本実施の形態において、復号処理の例が示されている。しかし、パイプライン処理は、復号処理に限定されない。復号処理の逆の処理である符号化処理が、本実施の形態と同様に、パイプライン方式で実行されてもよい。これにより、メモリ容量が低減され、回路規模が削減される。
 また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
 また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
 また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
 (実施の形態5)
  (5-1.概要)
 まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
 その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。
 また、画像復号装置は、復号処理に含まれる複数の処理を行う際、動き補償処理および面内予測処理に用いられる予測ユニットを周波数変換ユニットのサイズで分割する。
 これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。
 また、本実施の形態に係る画像復号装置は、1つのタイムスロットにおいて、インター予測の結果を面内予測に用いることができる。
 以上が、本実施の形態に係る画像復号装置の概要についての説明である。
  (5-2.構成)
 次に、本実施の形態に係る画像復号装置の構成について説明する。
 図29は本実施の形態に係る画像復号装置の構成図である。図1に示された実施の形態1の構成要素と同様の構成要素には同じ符号を割り当て、説明を省略する。本実施の形態に係る画像復号装置は、面内予測部710を備える。面内予測部710は、最大符号化ユニットのサイズのデータ単位で、再構成処理を行いながら面内予測処理を行う。
 図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態1と同様であるので、説明を省略する。
 図30は、図29の面内予測部710の構成を示す。図29に示された構成要素と同様の構成要素には同じ符号を割り当て、説明を省略する。面内予測部710は、再構成画像取得部702、面内予測演算部703、スイッチ711および再構成部712を備える。
 再構成画像取得部702は、再構成画像を取得する。面内予測演算部703は、面内予測画像の生成を行う。スイッチ711は、インター予測と面内予測とを切り替える。再構成部712は、予測画像と差分画像とを用いて復号画像を生成する。再構成画像メモリ509は、再構成画像を記憶するためのメモリである。
 以上が、本実施の形態に係る画像復号装置の構成についての説明である。
  (5-3.動作)
 本実施の形態では、実施の形態1と同様に、図3A~図6Bに示された符号化ストリームの構造が用いられる。
 図31は、動作の説明に用いられる複数の符号化ユニットの構成例を示す。また、図31は、図7Aに続く複数の符号化ユニットを示す。図31に示された複数の符号化ユニットは、64x64画素のCU8、CU9、32x32画素のCU10~CU13、および、64x64画素のCU14を含む。CU12には、面内予測が用いられている。CU12以外の全ての符号化ユニットには、インター予測が用いられている。
 本実施の形態に係る画像復号装置の動作フローは、図8および図9に示された実施の形態1と、面内予測処理(S1006)および再構成処理(S1007)を除いて、同様であるので、説明を省略する。以下、面内予測処理(S1006)および再構成処理(S1007)について、説明する。
 本実施の形態の面内予測部710による面内予測処理(S1006)および再構成処理(S1007)を図32に示すフローチャートを用いて説明する。まず、面内予測部710は、処理対象の符号化ユニットに面内予測が用いられる否かを判定する(S5000)。符号化ユニットに面内予測が用いられる場合(S5000でYes)、再構成画像取得部702は再構成画像メモリ509から画像を取得する。そして、面内予測演算部703は面内予測画像を生成する(S5001)。
 符号化ユニットに面内予測が用いられない場合(S5000でNo)、再構成部712は、動き補償部520のインター予測により生成された予測画像を取得する(S5003)。次に、再構成部712は、予測画像と、差分画像とから、再構成画像を生成する(S5002)。そして、再構成部712は、生成された再構成画像のうち、参照される可能性のある画像を再構成画像メモリ509に格納する(S5004)。
 次に、面内予測部710は、再構成処理が全て完了したか否かを判定する(S5005)。再構成処理が全て完了していない場合(S5005でNo)、面内予測部710は、再度面内予測が用いられる否かを判定する(S5000)。再構成処理が全て完了している場合(S5005でYes)、面内予測部710は、処理を終了する。
 以上が、本実施の形態における画像復号装置の動作である。本実施の形態では、上述のように、面内予測部710が再構成処理を行う。これにより、パイプライン処理が円滑に実行される。
 例えば、図31に示されたCU12にように、1つのデータ単位である64x64画素のブロックが、さらに、複数の符号化ユニットに分割され、複数の符号化ユニットの1つに面内予測が用いられる場合がある。このような場合でも、面内予測部710は、CU10の再構成処理、および、CU11の再構成処理を行った後、その結果の再構成画像を用いてCU12の面内予測処理を行うことができる。
  (5-4.補足)
 なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
 また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
 また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素~8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
 本実施の形態の面内予測部710を用いたパイプライン構成は、実施の形態1(図10)、実施の形態2(図11)、実施の形態3(図24)、および、実施の形態4(図29)などで示されたいずれの構成であってもよい。
 また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
 また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
 また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
 一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
 また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
 また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
 また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
 また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
 (実施の形態6)
  (6-1.概要)
 まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
 その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。
 また、画像復号装置は、復号処理に含まれる複数の処理を行う際、動き補償処理および面内予測処理に用いられる予測ユニットを周波数変換ユニットのサイズで分割する。
 これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。
 また、画像復号装置は、輝度データ(輝度情報)と色差データ(色差情報)とがそれぞれ別々に配置されている符号化ストリームを効率的に復号する。すなわち、画像復号装置は、色差データの可変長復号処理の終了を待つことなく、輝度データに対して後続の処理を実行する。よって、バッファメモリの容量の削減が可能になる。
 以上が、本実施の形態に係る画像復号装置の概要についての説明である。
  (6-2.構成)
 図29は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置の構成は、実施の形態5と同様であるので、説明を省略する。
 図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態1と同様であるので、説明を省略する。
 図30は、図29の面内予測部710の構成を示す。面内予測部710の構成は、実施の形態5と同様であるので、説明を省略する。
  (6-3.動作)
 本実施の形態では、実施の形態5と同様に、図3A~図4B、図6Aおよび図6Bに示された符号化ストリームの構造が用いられる。一方、本実施の形態では、図33に示すように、符号化ストリーム内における係数情報の構成が、実施の形態5の構成とは異なる。
 本実施の形態では、符号化ストリーム内において、輝度(図33においてYで示す)の係数データが64x64画素の周波数変換ユニット毎に配置される。また、輝度に続いて、青の色差(図33においてCbで示す)の係数データが32x32画素の周波数変換ユニット毎に配置される。次に、赤の色差(図33においてCrで示す)の係数データが32x32画素の周波数変換ユニット毎に配置される。
 また、本実施の形態では、4:2:0のフォーマットが、画像のフォーマットとして、想定されている。そのため、色差(Cb、Cr)のデータが32x32画素となっている。
 本実施の形態に係る画像復号装置の動作フローは、図8、図9および図32に示された実施の形態5と同様であるので、説明を省略する。
 本実施の形態では、パイプライン処理の構成が実施の形態5とは異なる。図34は、パイプライン処理の時系列の動作を示す。図34において、右上がりの斜線でハッチングされたブロックは、青の色差(Cb)のブロックを示し、左上がりの斜線でハッチングされたブロックは、赤の色差(Cr)のブロックを示す。
 図34に示すように、本実施の形態に係る画像復号装置は、CU0を、CU0aY~CU0dY、CU0Cb、CU0Crの6つのブロックに分割して、パイプライン処理を実行する。ここで、CU0は、128x128画素の1つの符号化ユニットである。CU0aY~CU0dYは、それぞれ、輝度のブロックである。CU0Cbは、青の色差のブロックである。CU0Crは、赤の色差のブロックである。
 CU1およびCU2などのように、64x64画素の輝度データで構成される符号化ユニットについて、色差(Cb、Cr)のデータ単位のサイズは、それぞれ32x32画素である。その他のデータ単位のサイズが64x64画素であることに比べて、CU1およびCU2の色差(Cb、Cr)についてのデータ単位のサイズが小さくなってしまう。したがって、実施の形態5等のように、複数のステージにおいて、同一のデータ単位で処理を切り替えることが困難になる。
 そこで、画像復号装置は、図35および図36のフローチャートに示された動作により、処理を切り替える。
 図35は、可変長復号部503が、CU0aY、CU0bY、・・・と処理を切り替える場合の動作を示す。まず、可変長復号部503は、可変長復号部503の出力用のメモリ511が空いているか否かを判定する(S6000)。
 メモリ511が空いていない場合(S6000でNo)、可変長復号部503は、そのまま、メモリ511が空くまで待つ。メモリ511が空いている場合(S6000でYes)、可変長復号部503は、次のデータの可変長復号処理を行う(S6001)。
 図36は、逆量子化部504が、CU0aY、CU0bY、・・・と処理を切り替える場合の動作を示す。まず、逆量子化部504は、処理対象のデータに対して可変長復号部503による可変長復号処理が終わっているか否かを判定する(S6002)。
 可変長復号処理が終わっていない場合(S6002でNo)、逆量子化部504は、可変長復号処理が終わるまで待つ。可変長復号処理が終わっている場合(S6002でYes)、逆量子化部504は、逆量子化部504の出力用のメモリ(図示せず)が空いているかをチェックする(S6003)。メモリが空いていない場合(S6003でNo)、逆量子化部504は、メモリが空くまで待つ。メモリが空いている場合(S6003でYes)、逆量子化部504は、逆量子化処理を行う(S6004)。
 ここでは、可変長復号部503および逆量子化部504の動作が示されている。他の処理部も、同様に、処理対象のデータが存在し、かつ、メモリが空いている場合、そのデータの処理を行うことができる。したがって、画像復号装置は、複数のステージにおいて、完全に同一のタイミングで処理を切り替えなくても、パイプライン処理を実行できる。
 また、画像復号装置は、輝度および色差を別々のデータ単位として扱う。これにより、色差データを待たずに輝度データの処理が実行される。したがって、内部バッファの容量の削減が可能になる。
  (6-4.補足)
 なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
 また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
 また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素~8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
 また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
 また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
 また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
 一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
 また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
 また、本実施の形態では、フォーマットが4:2:0である場合の例が示されている。しかし、4:2:2、または、4:4:4等の他のフォーマットでも、同様の処理が可能である。
 また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
 また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
 また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
 (実施の形態7)
  (7-1.概要)
 まず、本実施の形態に係る画像復号装置の概要について説明する。本実施の形態に係る画像復号装置は、符号化ストリームを復号する。符号化ストリームを構成する符号化ユニットのサイズは可変である。また、画像復号装置は、復号処理に含まれる複数の処理を複数のステージに分割して、パイプライン方式で並列に複数の処理を行う。
 その際、画像復号装置は、周波数変換ユニットのサイズで、複数の処理を行う。なお、周波数変換ユニットは、周波数変換を行うためのデータ単位である。また、周波数変換ユニットは、符号化ストリームを構成する符号化ユニットに含まれる。
 また、画像復号装置は、復号処理に含まれる複数の処理を行う際、動き補償処理および面内予測処理に用いられる予測ユニットを周波数変換ユニットのサイズで分割する。
 これにより、複数の符号化ユニットが様々なサイズで構成されている場合でも、各符号化ユニットのサイズによらず、パイプライン処理を構成する複数の処理のそれぞれにおける処理データ量が均等になる。したがって、パイプライン処理における空き時間が削減され、効率的にパイプライン処理が行われる。よって、性能が向上する。
 また、画像復号装置は、輝度データと色差データとを含むデータ単位で、動き補償処理を実行する。これにより、効率的に動き補償処理が実行される。
 以上が、本実施の形態に係る画像復号装置の概要についての説明である。
  (7-2.構成)
 図29は、本実施の形態に係る画像復号装置の構成図である。本実施の形態に係る画像復号装置の構成は、実施の形態6と同様であるので、説明を省略する。
 図2は、可変長復号部503と逆量子化部504の接続を示す構成図である。接続の構成は、実施の形態6と同様であるので、説明を省略する。
 図30は、図29の面内予測部710の構成を示している。面内予測部710は、実施の形態6と同様であるので、説明を省略する。
  (7-3.動作)
 本実施の形態では、実施の形態6と同様に、図3A~図4B、図6A、図6Bおよび図33に示された符号化ストリームの構造が用いられる。また、本実施の形態に係る画像復号装置の動作フローは、図8、図9および図32に示された実施の形態6と同様であるので、説明を省略する。
 本実施の形態では、パイプライン処理の構成が実施の形態6とは異なる。図37は、パイプライン処理の時系列の動作を示す。図37において、右上がりの斜線でハッチングされたブロックは、青の色差(Cb)のブロックを示し、左上がりの斜線でハッチングされたブロックは、赤の色差(Cr)のブロックを示す。
 図37に示すように、本実施の形態に係る画像復号装置は、CU0を、CU0aY~CU0dY、CU0Cb、CU0Crの6つのブロックに分割して、パイプライン処理を実行する。ここで、CU0は、128x128画素の1つの符号化ユニットである。CU0aY~CU0dYは、それぞれ、輝度のブロックである。CU0Cbは、青の色差のブロックである。CU0Crは、赤の色差のブロックである。
 本実施の形態では、第3ステージの動き補償処理において、CU0が輝度データと色差データとに分割されずに、CU0a~CU0dとして扱われる。また、動き補償処理が、第3ステージの逆量子化処理と同時に行われる。これらの点が実施の形態6とは異なっている。
 図9のフローチャートでは、説明のため、逆周波数変換処理(S1003)が終わった後に、動き補償処理(S1005)が実行されている。しかし、実際には、動き補償処理(S1005)は、動きベクトルが可変長復号されていれば、実行可能である。したがって、逆量子化処理(S1002)および逆周波数変換処理(S1003)が終わっていなくても、動き補償処理(S1005)は実行可能である。
 したがって、本実施の形態に係る画像復号装置は、CU0aY~CU0dY、CU0Cb、CU0Crの逆量子化処理および逆周波数変換処理と同時に、動き補償処理を行う。
 これにより、本実施の形態に係る画像復号装置は、演算量の大きい動き補償処理を輝度および色差について並列に同時に行うことができる。したがって、回路の構成が容易になり、性能の向上が可能になる。
  (7-4.補足)
 なお、本実施の形態において、符号化に用いられるデータ単位として、符号化ユニットという名称が用いられている。しかし、符号化に用いられるデータ単位は、マクロブロックであってもよい。また、符号化に用いられるデータ単位は、スーパーマクロブロックと呼ばれる場合もある。
 また、本実施の形態において、非特許文献2に示す符号化方式が用いられている。そして、本実施の形態において、各処理の内容の一例が示されている。しかし、各処理の内容は、本実施の形態の例に限定されるものではない。
 また、本実施の形態において、最大符号化ユニットのサイズは128x128画素である。しかし、最大符号化ユニットのサイズは、どのような大きさであっても構わない。また、本実施の形態において、符号化ユニットのサイズは128x128画素~8x8画素である。しかし、符号化ユニットのサイズは、これ以外のサイズであってもよい。
 また、各処理部において、一部あるいは全てが、専用ハードウェアによる回路で実現されてもよいし、プロセッサ上のプログラムで実現されてもよい。
 また、フレームメモリ502、再構成画像メモリ509およびメモリ511は、メモリに限られず、データの記憶が可能な記憶素子であればよい。例えば、これらは、フリップフロップまたはレジスタなど、他の構成であっても構わない。さらには、プロセッサのメモリ領域の一部、または、キャッシュメモリの一部がこれらに用いられてもよい。
 また、本実施の形態において、最も大きい周波数変換ユニットのサイズである64x64画素のデータ単位で、パイプライン処理が実行されている。しかし、データ単位は、必ずしも64x64画素に限定されない。
 一般的に、周波数変換処理は、1つのデータ単位に含まれる全てのデータを用いて実行される。したがって、周波数変換ユニットの分割は難しい。よって、本実施の形態では、最も大きい周波数変換ユニットのサイズが選択されている。しかし、周波数変換処理以外の処理で、その処理に用いられるデータ単位の分割が難しい場合、その処理に用いられるデータ単位でパイプライン処理が実行されてもよい。
 また、本実施の形態において、再構成画像メモリ509が明示的に示されている。しかし、各処理部内のメモリが再構成画像メモリ509として用いられてもよいし、フレームメモリ502が再構成画像メモリ509として用いられてもよい。
 また、本実施の形態では、フォーマットが4:2:0である場合の例が示されている。しかし、4:2:2、または、4:4:4等の他のフォーマットでも、同様の処理が可能である。
 また、本実施の形態では、第3ステージの動き補償処理が、第2ステージの逆量子化と同時に開始されている。しかし、動き補償処理は、動きベクトルの可変長復号処理が終わっていれば、第1ステージの可変長復号処理の実行中に開始されてもよいし、あるいはもっと遅れて開始されても構わない。
 また、本実施の形態では、CU分割フラグは、分割ブロックの先頭に存在する。しかし、CU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、CU分割フラグは、最大符号化ユニット(LCU)の先頭に存在してもよい。
 また、本実施の形態では、TU分割フラグは、各係数情報の先頭に存在する。しかし、TU分割フラグは、必ずしもこのような位置に存在する必要はなく、符号化ストリームに存在すればよい。例えば、TU分割フラグは、符号化ユニットまたは最大符号化ユニットの先頭に存在してもよい。
 また、本実施の形態では、タイムスロット毎に処理が切り替えられている。処理は、必ずしも固定時間で切り替えられなくてもよい。依存関係を有する前の処理が完了し、かつ、次の処理が開始可能である場合、次の処理が開始されてもよい。また、各ステージにおいて、同時に処理が切り替えられなくてもよい。
 以下、実施の形態8~実施の形態15において、上述の実施の形態1~実施の形態7で示された特徴的な構成要素を示す。
 (実施の形態8)
 図38は、実施の形態8に係る画像処理装置の構成を示す構成図である。図38に示された画像処理装置2100は、制御部2110および複数の第1処理部2111を備える。複数の第1処理部2111は、処理部2121および処理部2122を含む。すなわち、処理部2121および処理部2122は、それぞれ、第1処理部である。
 画像処理装置2100は、符号化ストリームに対して、パイプライン方式で複数の第1処理を施す。符号化ストリームは、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、画像が符号化単位ブロック毎に符号化されることによって得られる。
 複数の第1処理部2111は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す。その際、複数の第1処理部2111に含まれる処理部2121および処理部2122は、それぞれ、複数の第1処理のいずれかを実行する。
 制御部2110は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する。そして、制御部2110は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2111を制御する。
 図39は、図38に示された画像処理装置2100の動作を示すフローチャートである。
 まず、制御部2110は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する(S2101)。そして、制御部2110は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2111を制御する。
 次に、複数の第1処理部2111は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す(S2102)。その際、複数の第1処理部2111に含まれる処理部2121および処理部2122は、それぞれ、複数の第1処理のいずれかを実行する(S2111、S2112)。
 これにより、複数の第1処理部2111は、ひとつのサイズに基づいて、符号化ストリームに対してパイプライン方式で複数の処理を施す。したがって、空き時間が削減され、動作効率が向上する。
 なお、複数の第1処理部2111は、符号化ストリームに対して、画像を復号するための複数の第1処理を施してもよい。
 また、制御部2110は、符号化ストリームを構成する符号化単位ブロックを分割することにより、符号化ストリームを複数の第1処理単位ブロックに分割してもよい。または、符号化ストリームを構成する2以上の符号化単位ブロックをまとめることにより、符号化ストリームを複数の第1処理単位ブロックに分割してもよい。
 また、制御部2110は、複数の第1処理単位ブロックのそれぞれに対して複数の第1処理のそれぞれが所定の期間で実行されるように、複数の第1処理部2111を制御してもよい。所定の期間は、例えば、所定の数のタイムスロットである。
 また、符号化単位ブロックは、画面間予測と画面内予測との切り替え可能な最小単位であってもよい。
 また、上述の第1サイズは、最も大きい符号化単位ブロックのサイズとして予め定められたサイズでもよい。例えば、第1サイズは、符号化ストリームまたは符号化規格において最も大きい符号化単位ブロックのサイズとして予め定められたサイズでもよい。
 また、上述の第1サイズは、最も大きい符号化単位ブロックである最大符号化ユニット(Largest Coding Unit)のサイズとして予め定められたサイズでもよい。例えば、第1サイズは、符号化ストリームまたは符号化規格において最大符号化ユニットのサイズとして予め定められたサイズでもよい。
 また、上述の第1サイズは、最も大きい周波数変換ブロックのサイズとして予め定められたサイズでもよい。周波数変換ブロックは、符号化処理における周波数変換のためのデータ単位、または、復号処理における逆周波数変換のためのデータ単位である。例えば、第1サイズは、符号化ストリームまたは符号化規格において最も大きい周波数変換ブロックのサイズとして予め定められたサイズでもよい。
 また、上述の第1サイズは、最も大きい周波数変換ブロックである最も大きい周波数変換ユニット(Transform Unit)のサイズとして予め定められたサイズでもよい。例えば、第1サイズは、符号化ストリームまたは符号化規格において最も大きい周波数変換ユニットのサイズとして予め定められたサイズでもよい。
 (実施の形態9)
 図40は、実施の形態9に係る画像処理装置の構成を示す構成図である。図40に示された画像処理装置2200は、制御部2210および複数の第1処理部2211を備える。
 複数の第1処理部2211は、処理部2221、処理部2222および処理部2223を含む。また、複数の第1処理部2211は、複数の第2処理部2212を含む。複数の第2処理部2212は、処理部2222および処理部2223を含む。すなわち、処理部2221は、第1処理部である。また、処理部2222および処理部2223は、それぞれ、第1処理部であり、かつ、第2処理部である。
 画像処理装置2200は、実施の形態8の画像処理装置2100と同様に、符号化ストリームに対して、パイプライン方式で複数の第1処理を施す。
 複数の第1処理部2211は、実施の形態8の複数の第1処理部2111と同様に、符号化ストリームに対してパイプライン方式で複数の第1処理を施す。その際、複数の第1処理部2211に含まれる処理部2221、処理部2222および処理部2223は、それぞれ、複数の第1処理のいずれかを実行する。
 複数の第2処理部2212は、複数の第1処理に含まれる複数の第2処理を実行する。
 制御部2210は、実施の形態8の制御部2110と同様に、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する。そして、制御部2210は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2211を制御する。
 また、制御部2210は、複数の第1処理単位ブロックを、第1サイズよりも小さい第2サイズでそれぞれが構成される複数の第2処理単位ブロックに分割する。そして、制御部2210は、複数の第2処理が第2処理単位ブロック毎に実行されるように、複数の第2処理部2212を制御する。
 図41は、図40に示された画像処理装置2200の動作を示すフローチャートである。
 まず、制御部2210は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する(S2201)。そして、制御部2210は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2211を制御する。
 次に、制御部2210は、複数の第1処理単位ブロックを、第1サイズよりも小さい第2サイズでそれぞれが構成される複数の第2処理単位ブロックに分割する(S2202)。そして、制御部2210は、複数の第2処理が第2処理単位ブロック毎に実行されるように、複数の第2処理部2212を制御する。
 次に、複数の第1処理部2211は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す(S2203)。その際、複数の第1処理部2211に含まれる処理部2221、処理部2222および処理部2223は、それぞれ、複数の第1処理のいずれかを実行する(S2211、S2212、S2213)。
 上述の動作に伴って、複数の第2処理部2212は、複数の第2処理を実行する(S2204)。その際、複数の第2処理部2212に含まれる処理部2222および処理部2223は、それぞれ、複数の第2処理のいずれかを実行する(S2211、S2212)。
 これにより、パイプライン処理がより小さいサイズで実行される。したがって、動作効率がさらに向上する。
 なお、制御部2210は、複数の第1処理単位ブロックを、それぞれのサイズが第1サイズ以下である複数の第2処理単位ブロックに分割してもよい。これによっても、パイプライン処理が小さいサイズで実行される。したがって、動作効率が向上する。
 また、制御部2210は、輝度情報と色差情報とが分割されるように、複数の第1処理単位ブロックを複数の第2処理単位ブロックに分割してもよい。これにより、輝度情報と色差情報とが別々に処理される。そして、パイプライン処理が小さいサイズで実行され、動作効率が向上する。
 また、複数の第1処理部2211は、動き補償処理を実行する動き補償処理部を含んでいてもよい。
 そして、制御部2210は、複数の第1処理単位ブロックを、第1サイズよりも小さい第3サイズでそれぞれが構成される複数の第3処理単位ブロックに分割してもよい。その際、制御部2210は、輝度情報と色差情報とが1つの第3処理単位ブロックに含まれるように、複数の第1処理単位ブロックを複数の第3処理単位ブロックに分割してもよい。そして、制御部2210は、動き補償処理が第3処理単位ブロック毎に実行されるように、動き補償処理部を制御してもよい。
 これにより、動き補償処理において、輝度情報と色差情報とが一緒に処理される。したがって、動作の無駄が削減される。
 (実施の形態10)
 図42は、実施の形態10に係る画像処理装置の構成を示す構成図である。図42に示された画像処理装置2300は、制御部2310および複数の第1処理部2311を備える。複数の第1処理部2311は、処理部2321、動き補償処理部2322を含む。すなわち、処理部2321および動き補償処理部2322は、それぞれ、第1処理部である。
 画像処理装置2300は、実施の形態8の画像処理装置2100と同様の構成要素を備え、実施の形態8の画像処理装置2100と同様に、動作する。制御部2310、複数の第1処理部2311、処理部2321および動き補償処理部2322は、それぞれ、実施の形態8の制御部2110、複数の第1処理部2111、処理部2121および処理部2122に対応する。画像処理装置2300の各構成要素は、対応する構成要素と同様に、動作する。ただし、実施の形態8と比較して、本実施の形態では、以下に示す相違点がある。
 動き補償処理部2322は、動き補償処理を実行する。動き補償処理に用いられる予測ブロックが第1サイズよりも大きい場合、制御部2310は、予測ブロックを複数の第1処理単位ブロックに分割する。そして、制御部2310は、動き補償処理が第1処理単位ブロック毎に実行されるように、動き補償処理部2322を制御する。予測ブロックは、予測処理のためのデータ単位である。
 図43は、図42に示された画像処理装置2300の動作を示すフローチャートである。
 まず、制御部2310は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する(S2301)。そして、制御部2310は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2311を制御する。
 また、この時、制御部2310は、動き補償処理に用いられる予測ブロックが第1サイズよりも大きい場合、制御部2310は、予測ブロックを複数の第1処理単位ブロックに分割する。そして、制御部2310は、動き補償処理が第1処理単位ブロック毎に実行されるように、動き補償処理部2322を制御する。
 次に、複数の第1処理部2311は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す(S2302)。その際、複数の第1処理部2311に含まれる処理部2321および動き補償処理部2322は、それぞれ、複数の第1処理のいずれかを実行する(S2311、S2312)。特に、動き補償処理部2322は、複数の第1処理に含まれる動き補償処理を実行する(S2312)。
 これにより、動き補償処理部2322と他の処理部との間で交換される情報量が低減される。したがって、回路規模の縮小が可能になる。
 (実施の形態11)
 図44は、実施の形態11に係る画像処理装置の構成を示す構成図である。図44に示された画像処理装置2400は、制御部2410および複数の第1処理部2411を備える。複数の第1処理部2411は、処理部2421、面内予測処理部2422を含む。すなわち、処理部2421および面内予測処理部2422は、それぞれ、第1処理部である。
 画像処理装置2400は、実施の形態8の画像処理装置2100と同様の構成要素を備え、実施の形態8の画像処理装置2100と同様に動作する。制御部2410、複数の第1処理部2411、処理部2421および面内予測処理部2422は、それぞれ、実施の形態8の制御部2110、複数の第1処理部2111、処理部2121および処理部2122に対応する。画像処理装置2400の各構成要素は、対応する構成要素と同様に動作する。ただし、実施の形態8と比較して、本実施の形態では、以下に示す相違点がある。
 面内予測処理部2422は、面内予測処理を実行する。面内予測処理に用いられる予測ブロックが第1サイズよりも大きい場合、制御部2410は、予測ブロックを複数の第1処理単位ブロックに分割する。そして、制御部2410は、面内予測処理が第1処理単位ブロック毎に実行されるように、面内予測処理部2422を制御する。予測ブロックは、予測処理のためのデータ単位である。
 図45は、図44に示された画像処理装置2400の動作を示すフローチャートである。
 まず、制御部2410は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する(S2401)。そして、制御部2410は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2411を制御する。
 また、この時、制御部2410は、面内予測処理に用いられる予測ブロックが第1サイズよりも大きい場合、制御部2410は、予測ブロックを複数の第1処理単位ブロックに分割する。そして、制御部2410は、面内予測処理が第1処理単位ブロック毎に実行されるように、面内予測処理部2422を制御する。
 次に、複数の第1処理部2411は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す(S2402)。その際、複数の第1処理部2411に含まれる処理部2421および面内予測処理部2422は、それぞれ、複数の第1処理のいずれかを実行する(S2411、S2412)。特に、面内予測処理部2422は、複数の第1処理に含まれる面内予測処理を実行する(S2412)。
 これにより、面内予測処理部2422と他の処理部との間で交換される情報量が低減される。したがって、回路規模の縮小が可能になる。
 (実施の形態12)
 図46は、実施の形態12に係る画像処理装置の構成を示す構成図である。図46に示された画像処理装置2500は、制御部2510および複数の第1処理部2511を備える。複数の第1処理部2511は、処理部2521、デブロックフィルタ処理部2522を含む。すなわち、処理部2521およびデブロックフィルタ処理部2522は、それぞれ、第1処理部である。
 画像処理装置2500は、実施の形態8の画像処理装置2100と同様の構成要素を備え、実施の形態8の画像処理装置2100と同様に、動作する。制御部2510、複数の第1処理部2511、処理部2521およびデブロックフィルタ処理部2522は、それぞれ、実施の形態8の制御部2110、複数の第1処理部2111、処理部2121および処理部2122に対応する。画像処理装置2500の各構成要素は、対応する構成要素と同様に、動作する。ただし、実施の形態8と比較して、本実施の形態では、以下に示す相違点がある。
 デブロックフィルタ処理部2522は、周波数変換ブロック等のブロックの境界における符号化歪みを除去するためのデブロックフィルタ処理を実行する。制御部2510は、画像が符号化される時に周波数変換処理が実行された順序に従って、デブロックフィルタ処理が周波数変換ブロック毎に実行されるように、デブロックフィルタ処理部2522を制御する。
 図47は、図46に示された画像処理装置2500の動作を示すフローチャートである。
 まず、制御部2510は、符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割する(S2501)。そして、制御部2510は、複数の第1処理が第1処理単位ブロック毎に実行されるように、複数の第1処理部2511を制御する。また、この時、制御部2510は、画像が符号化される時に周波数変換処理が実行された順序に従って、デブロックフィルタ処理が周波数変換ブロック毎に実行されるように、デブロックフィルタ処理部2522を制御する。
 次に、複数の第1処理部2511は、符号化ストリームに対してパイプライン方式で複数の第1処理を施す(S2502)。その際、複数の第1処理部2511に含まれる処理部2521およびデブロックフィルタ処理部2522は、それぞれ、複数の第1処理のいずれかを実行する(S2511、S2512)。特に、デブロックフィルタ処理部2522は、複数の第1処理に含まれるデブロックフィルタ処理を実行する(S2512)。
 これにより、デブロックフィルタ処理が、小さいサイズで実行される。したがって、空き時間が削減され、動作効率が向上する。
 (実施の形態13)
 図48は、実施の形態13に係る画像符号化装置の構成を示す構成図である。図48に示された画像符号化装置2600は、符号化処理部2610およびデブロックフィルタ処理部2611を備える。画像符号化装置2600は、画像を符号化する。
 図49は、図48に示された画像符号化装置2600の動作を示すフローチャートである。
 まず、符号化処理部2610は、少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像を分割する。そして、符号化処理部2610は、画像に対して符号化単位ブロック毎に符号化処理を実行する(S2601)。符号化処理には、例えば、周波数変換処理、量子化処理、可変長符号化処理、逆量子化処理、逆周波数変換処理、動き補償処理および面内予測処理等が含まれていてもよい。
 次に、デブロックフィルタ処理部2611は、符号化単位ブロックに対して符号化処理が実行された順序に従って、デブロックフィルタ処理を符号化単位ブロック毎に実行する(S2602)。例えば、デブロックフィルタ処理部2611は、図26で示された順序で、デブロックフィルタ処理を実行する。デブロックフィルタ処理が施された符号化単位ブロックは、参照画像として、後続の符号化単位ブロックに対する動き補償処理等の符号化処理で用いられる。
 これにより、デブロックフィルタ処理と、前段の処理との間の空き時間が削減される。したがって、動作効率が向上する。また、典型的には、符号化側と復号側とで同じ順序が用いられる。したがって、復号側の動作効率も向上する。
 なお、デブロックフィルタ処理部2611は、符号化処理が実行された順序によらず、デブロックフィルタ処理(S2602)を実行してもよい。そして、デブロックフィルタ処理部2611は、デブロックフィルタ処理を符号化単位ブロック毎とは異なる所定のデータ単位毎に実行してもよい。例えば、デブロックフィルタ処理部2611は、図25のように、デブロックフィルタ処理を、所定のデータ単位毎に、垂直境界および水平境界のうち、一方に対して実行した後、他方に対して実行してもよい。
 (実施の形態14)
 図50は、実施の形態14に係る画像符号化装置の構成を示す構成図である。図50に示された画像符号化装置2700は、周波数変換処理部2710およびデブロックフィルタ処理部2711を備える。画像符号化装置2700は、画像を符号化単位ブロック毎に符号化する。
 図51は、図50に示された画像符号化装置2700の動作を示すフローチャートである。
 まず、周波数変換処理部2710は、画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割する。そして、周波数変換処理部2710は、符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する(S2701)。
 次に、デブロックフィルタ処理部2711は、符号化単位ブロックに対して周波数変換処理が実行された順序に従って、デブロックフィルタ処理を周波数変換ブロック毎に実行する(S2702)。
 これにより、デブロックフィルタ処理が、小さいサイズで実行される。したがって、空き時間が削減され、動作効率が向上する。
 (実施の形態15)
 図52は、実施の形態15に係る画像符号化装置の構成を示す構成図である。図52に示された画像符号化装置2800は、周波数変換処理部2810および符号化処理部2811を備える。画像符号化装置2800は、画像を符号化単位ブロック毎に符号化する。
 図53は、図52に示された画像符号化装置2800の動作を示すフローチャートである。
 まず、周波数変換処理部2810は、画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割する。そして、周波数変換処理部2810は、符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する(S2801)。
 次に、符号化処理部2811は、周波数変換処理が実行された符号化単位ブロックを符号化する。例えば、符号化処理部2811は、可変長符号化処理を実行する。そして、符号化処理部2811は、画像の輝度情報および色差情報が周波数変換ブロック毎に一緒にまとまるように符号化ストリームを生成する(S2802)。例えば、符号化処理部2811は、図5Aおよび図5Bに示された符号化ストリームのように、輝度情報および色差情報が周波数変換ブロック毎に一緒にまとまるように符号化ストリームを生成する。
 図54は、本実施の形態に係る符号化ストリームの例を示す図である。図54の例では、符号化単位ブロックは、4つの周波数変換ブロックA、B、C、Dを含む。そして、各周波数変換ブロックに対応する係数情報は、輝度情報(Y)および色差情報(Cb、Cr)を含む。すなわち、符号化処理部2811は、図54のように、輝度情報(Y)および色差情報(Cb、Cr)が周波数変換ブロック毎に一緒にまとまるように符号化ストリームを生成する。
 これにより、復号側でも、輝度情報および色差情報を分けることなく、周波数変換ブロックのデータ単位でパイプライン処理が実行可能になる。したがって、動作効率が向上する。
 なお、符号化ストリームは、第1周波数変換ブロックの輝度情報、第1周波数変換ブロックの色差情報、第2周波数変換ブロックの輝度情報、第2周波数変換ブロックの色差情報というような順序で、構成されていてもよい。すなわち、輝度情報および色差情報がそれぞれ独立して符号化ストリームに含まれ、かつ、輝度情報および色差情報が周波数変換ブロック毎に一緒にまとめられていてもよい。このような構成でも、周波数変換ブロックのデータ単位でパイプライン処理が実行可能になる。
 以上、本発明に係る画像処理装置、画像復号装置および画像符号化装置について、複数の実施の形態に基づいて説明したが、本発明はそれらの実施の形態に限定されるものではない。それらの実施の形態に対して当業者が思いつく変形を施して得られる形態、および、それらの実施の形態における構成要素を任意に組み合わせて実現される別の形態も本発明に含まれる。
 例えば、特定の処理部が実行する処理を別の処理部が実行してもよい。また、処理を実行する順番が変更されてもよいし、複数の処理が並行して実行されてもよい。
 また、本発明は、画像処理装置、画像復号装置または画像符号化装置として実現できるだけでなく、画像処理装置、画像復号装置または画像符号化装置を構成する処理手段をステップとする方法として実現できる。例えば、それらのステップは、コンピュータによって実行される。そして、本発明は、それらの方法に含まれるステップを、コンピュータに実行させるためのプログラムとして実現できる。さらに、本発明は、そのプログラムを記録したCD-ROM等のコンピュータ読み取り可能な記録媒体として実現できる。
 また、画像処理装置、画像復号装置または画像符号化装置に含まれる複数の構成要素は、集積回路であるLSI(Large Scale Integration)として実現されてもよい。これらの構成要素は、個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。例えば、メモリ以外の構成要素が、1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC(Integrated Circuit)、システムLSI、スーパーLSIまたはウルトラLSIと呼称されることもある。
 また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。プログラムすることが可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
 さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて、画像処理装置、画像復号装置または画像符号化装置に含まれる構成要素の集積回路化を行ってもよい。
 (実施の形態16)
 上記各実施の形態で示した画像符号化方法および画像復号方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
 さらに、ここで、上記各実施の形態で示した画像符号化方法および画像復号方法の応用例とそれを用いたシステムを説明する。
 図55は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106~ex110が設置されている。
 このコンテンツ供給システムex100では、電話網ex104、および、基地局ex106~ex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が相互に接続される。また、各機器が、インターネットサービスプロバイダex102を介して、インターネットex101に接続されている。
 しかし、コンテンツ供給システムex100は、図55のような構成に限定されず、いずれかの要素を組み合せて接続するようにしてもよい。また、固定無線局である基地局ex106~ex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
 カメラex113は、デジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116は、デジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W-CDMA(Wideband-Code Division Multiple Access)方式、LTE(Long Term Evolution)方式、若しくは、HSPA(High Speed Packet Access)方式の携帯電話、または、PHS(Personal Handyphone System)等であり、いずれでも構わない。
 コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して、上記各実施の形態で説明したように符号化処理を行い、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は、要求のあったクライアントに対して、送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号処理して再生する。
 なお、撮影したデータの符号化処理は、カメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号処理は、クライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理は、カメラex116、コンピュータex111およびストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
 また、これら符号化処理および復号処理は、一般的にコンピュータex111および各機器が有するLSI(Large Scale Integration)ex500において実行される。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、画像符号化用のソフトウェアまたは画像復号用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD-ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化処理または復号処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画像データを送信してもよい。このときの動画像データは、携帯電話ex114が有するLSIex500で符号化処理されたデータである。
 また、ストリーミングサーバex103は、複数のサーバまたは複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
 以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号し、再生することができ、特別な権利および設備を有さないユーザでも個人放送を実現できる。
 なお、コンテンツ供給システムex100の例に限らず、図56に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも画像符号化装置または画像復号装置のいずれかを組み込むことができる。具体的には、放送局ex201では映像情報のビットストリームが電波を介して通信または衛星ex202に伝送される。このビットストリームは、上記各実施の形態で説明した画像符号化方法により符号化された符号化ビットストリームである。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信したビットストリームを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号して再生する。
 また、記録媒体であるCDおよびDVD等の記録メディアex214に記録したビットストリームを読み取り、復号する再生装置ex212にも上記実施の形態で示した画像復号装置を実装することが可能である。この場合、再生された映像信号はモニタex213に表示される。
 また、DVD、BD等の記録メディアex215に記録した符号化ビットストリームを読み取り復号する、または、記録メディアex215に映像信号を符号化し書き込むリーダ/レコーダex218にも上記各実施の形態で示した画像復号装置または画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、符号化ビットストリームが記録された記録メディアex215により他の装置およびシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に画像復号装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に画像復号装置を組み込んでもよい。
 図57は、上記各実施の形態で説明した画像復号方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像情報のビットストリームを取得または出力するチューナex301と、受信した符号化データを復調する、または外部に送信する符号化データに変調する変調/復調部ex302と、復調した映像データ、音声データを分離する、または符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。
 また、テレビex300は、音声データ、映像データそれぞれを復号する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305を有する信号処理部ex306と、復号した音声信号を出力するスピーカex307、復号した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。
 インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお、記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。
 テレビex300の各部は、同期バスを介して互いに接続されている。
 まず、テレビex300がアンテナex204等により外部から取得したデータを復号し、再生する構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、CPU等を有する制御部ex310の制御に基づいて、変調/復調部ex302で復調した映像データ、音声データを多重/分離部ex303で分離する。さらにテレビex300は、分離した音声データを音声信号処理部ex304で復号し、分離した映像データを映像信号処理部ex305で上記各実施の形態で説明した復号方法を用いて復号する。復号した音声信号、映像信号は、それぞれ出力部ex309から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex318、ex319等に一旦これらの信号を蓄積するとよい。また、テレビex300は、放送等からではなく、磁気/光ディスク、SDカード等の記録メディアex215、ex216から符号化された符号化ビットストリームを読み出してもよい。
 次に、テレビex300が音声信号および映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、制御部ex310の制御に基づいて、音声信号処理部ex304で音声信号を符号化し、映像信号処理部ex305で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重/分離部ex303で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex320、ex321等に一旦これらの信号を蓄積するとよい。
 なお、バッファex318~ex321は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302および多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
 また、テレビex300は、放送および記録メディア等から音声データおよび映像データを取得する以外に、マイクおよびカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号処理、外部出力のみが可能な構成であってもよい。
 また、リーダ/レコーダex218で記録メディアから符号化ビットストリームを読み出す、または、書き込む場合には、上記復号処理または符号化処理はテレビex300とリーダ/レコーダex218とのいずれで行ってもよいし、テレビex300とリーダ/レコーダex218とが互いに分担して行ってもよい。
 一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図58に示す。情報再生/記録部ex400は、以下に説明する要素ex401~ex407を備える。
 光ヘッドex401は、光ディスクである記録メディアex215の記録面にレーザスポットを照射して情報を書き込み、記録メディアex215の記録面からの反射光を検出して情報を読み込む。変調記録部ex402は、光ヘッドex401に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex403は、光ヘッドex401に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex215に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex404は、記録メディアex215に記録するための情報および記録メディアex215から再生した情報を一時的に保持する。ディスクモータex405は、記録メディアex215を回転させる。サーボ制御部ex406は、ディスクモータex405の回転駆動を制御しながら光ヘッドex401を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。
 システム制御部ex407は、情報再生/記録部ex400全体の制御を行う。上記の読み出しおよび書き込みの処理はシステム制御部ex407が、バッファex404に保持された各種情報を利用し、また必要に応じて新たな情報の生成および追加を行うと共に、変調記録部ex402、再生復調部ex403、サーボ制御部ex406を協調動作させながら、光ヘッドex401を通して、情報の記録再生を行うことにより実現される。システム制御部ex407は、例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
 以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
 図59に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録および再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。
 情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した符号化データの読み書きを行う。
 以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりするなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
 また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば図57に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111および携帯電話ex114等でも考えられる。また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器および復号器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号器のみの受信端末という3通りの実装形式が考えられる。
 このように、上記各実施の形態で示した画像符号化方法あるいは画像復号方法を上述したいずれの機器またはシステムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
 また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
 (実施の形態17)
 本実施の形態では、実施の形態1に示した画像復号装置を、典型的には半導体集積回路であるLSIとして実現する。実現した形態を図60に示す。フレームメモリ502をDRAM上に実現し、その他の回路およびメモリをLSI上に構成している。符号化ストリームを格納するビットストリームバッファをDRAM上に実現してもよい。
 これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されても良い。ここではLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
 また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
 さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適応などが可能性として有り得る。
 さらに加えて、本実施の形態の画像復号装置を集積化した半導体チップと、画像を描画するためのディスプレイとを組み合せて、様々な用途に応じた描画機器を構成することができる。携帯電話、テレビ、デジタルビデオレコーダー、デジタルビデオカメラおよびカーナビゲーション等における情報描画手段として、本発明を利用することが可能である。ディスプレイとしては、ブラウン管(CRT)の他、液晶、PDP(プラズマディスプレイパネル)および有機ELなどのフラットディスプレイ、プロジェクターを代表とする投射型ディスプレイなどと組み合わせることが可能である。
 また、本実施の形態におけるLSIは、符号化ストリームを蓄積するビットストリームバッファ、および、画像を蓄積するフレームメモリ等を備えるDRAM(Dynamic Random Access Memory)と連携することにより、符号化処理または復号処理を行ってもよい。また、本実施の形態におけるLSIは、DRAMではなく、eDRAM(embeded DRAM)、SRAM(Static Random Access Memory)、または、ハードディスクなど他の記憶装置と連携しても構わない。
 (実施の形態18)
 上記各実施の形態で示した画像符号化装置、画像復号装置、画像符号化方法および画像復号方法は、典型的には集積回路であるLSIで実現される。一例として、図61に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex502~ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
 例えば、符号化処理を行う場合には、LSIex500は、AV I/Oex509によりマイクex117およびカメラex113等からAV信号の入力を受け付ける。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。蓄積したデータは、処理量および処理速度に応じて適宜複数回に分けるなどされ、信号処理部ex507に送られる。信号処理部ex507は、音声信号の符号化および/または映像信号の符号化を行う。ここで映像信号の符号化処理は、上記実施の形態で説明した符号化処理である。信号処理部ex507では、さらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex504から外部に出力する。この出力されたビットストリームは、基地局ex107に向けて送信されたり、または、記録メディアex215に書き込まれたりする。
 また、例えば、復号処理を行う場合には、LSIex500は、マイコン(マイクロコンピュータ)ex502の制御に基づいて、ストリームI/Oex504によって、基地局ex107から得られた符号化データ、または、記録メディアex215から読み出して得た符号化データを一旦メモリex511等に蓄積する。マイコンex502の制御に基づいて、蓄積したデータは処理量および処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声データの復号および/または映像データの復号が行われる。ここで映像信号の復号処理は上記各実施の形態で説明した復号処理である。さらに、場合により復号された音声信号と復号された映像信号を同期して再生できるようそれぞれの信号を一旦メモリex511等に蓄積するとよい。復号された出力信号はメモリex511等を適宜介しながら、AVI/Oex509からモニタex219等に出力される。メモリex511にアクセスする際にはメモリコントローラex503を介する構成である。
 なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
 なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
 また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
 さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
 本発明に係る画像処理装置は、様々な用途に利用可能である。例えば、テレビ、デジタルビデオレコーダー、カーナビゲーション、携帯電話、デジタルカメラ、デジタルビデオカメラ等の高解像度の情報表示機器、または、撮像機器に利用可能であり、利用価値が高い。
  501、2110、2210、2310、2410、2510、ex310 制御部
  502 フレームメモリ
  503 可変長復号部
  504 逆量子化部
  505 逆周波数変換部
  506、520 動き補償部
  507、521、710 面内予測部
  508、712 再構成部
  509 再構成画像メモリ
  510 デブロックフィルタ部
  511、ex511 メモリ
  601 動き補償ブロック分割部
  602 参照画像取得部
  603 動き補償演算部
  701 面内予測ブロック分割部
  702 再構成画像取得部
  703 面内予測演算部
  711 スイッチ
  2100、2200、2300、2400、2500 画像処理装置
  2121、2122、2221、2222、2223、2321、2421、2521 処理部
  2111、2211、2311、2411、2511 複数の第1処理部
  2212 複数の第2処理部
  2322 動き補償処理部
  2422 面内予測処理部
  2522、2611、2711 デブロックフィルタ処理部
  2600、2700、2800 画像符号化装置
  2610、2811 符号化処理部
  2710、2810 周波数変換処理部
  ex100 コンテンツ供給システム
  ex101 インターネット
  ex102 インターネットサービスプロバイダ
  ex103 ストリーミングサーバ
  ex104 電話網
  ex106、ex107、ex108、ex109、ex110 基地局
  ex111 コンピュータ
  ex112 PDA(Personal Digital Assistant)
  ex113、ex116 カメラ
  ex114 携帯電話
  ex115 ゲーム機
  ex117 マイク
  ex200 デジタル放送用システム
  ex201 放送局
  ex202 放送衛星(衛星)
  ex203 ケーブル
  ex204、ex205 アンテナ
  ex210 車
  ex211 カーナビゲーション(カーナビ)
  ex212 再生装置
  ex213、ex219 モニタ
  ex214、ex215、ex216 記録メディア
  ex217 セットトップボックス(STB)
  ex218 リーダ/レコーダ
  ex220 リモートコントローラ
  ex230 情報トラック
  ex231 記録ブロック
  ex232 内周領域
  ex233 データ記録領域
  ex234 外周領域
  ex300 テレビ(受信機)
  ex301 チューナ
  ex302 変調/復調部
  ex303 多重/分離部
  ex304 音声信号処理部
  ex305 映像信号処理部
  ex306、ex507 信号処理部
  ex307 スピーカ
  ex308 表示部
  ex309 出力部
  ex311、ex505 電源回路部
  ex312 操作入力部
  ex313 ブリッジ
  ex314 スロット部
  ex315 ドライバ
  ex316 モデム
  ex317 インタフェース部
  ex318、ex319、ex320、ex321、ex404 バッファ
  ex400 情報再生/記録部
  ex401 光ヘッド
  ex402 変調記録部
  ex403 再生復調部
  ex405 ディスクモータ
  ex406 サーボ制御部
  ex407 システム制御部
  ex500 LSI
  ex502 マイコン(マイクロコンピュータ)
  ex503 メモリコントローラ
  ex504 ストリームI/O
  ex509 AV I/O
  ex510 バス

Claims (22)

  1.  少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す画像処理装置であって、
     それぞれが前記複数の第1処理のいずれかを実行することによって、前記符号化ストリームに対して前記パイプライン方式で前記複数の第1処理を施す複数の第1処理部と、
     前記符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する制御部とを備える
     画像処理装置。
  2.  前記複数の第1処理部は、前記符号化ストリームに対して、前記画像を復号するための前記複数の第1処理を施す
     請求項1に記載の画像処理装置。
  3.  前記制御部は、前記符号化ストリームを構成する符号化単位ブロックを分割することにより、または、前記符号化ストリームを構成する2以上の符号化単位ブロックをまとめることにより、前記符号化ストリームを前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する
     請求項1または2に記載の画像処理装置。
  4.  前記制御部は、前記複数の第1処理単位ブロックのそれぞれに対して前記複数の第1処理のそれぞれが所定の期間で実行されるように、前記複数の第1処理部を制御する
     請求項1~3のいずれか1項に記載の画像処理装置。
  5.  前記制御部は、それぞれが画面間予測と画面内予測との切り替え可能な最小単位である前記複数の符号化単位ブロックに前記画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる前記符号化ストリームを、前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する
     請求項1~4のいずれか1項に記載の画像処理装置。
  6.  前記制御部は、前記符号化ストリームを、最も大きい符号化単位ブロックのサイズとして予め定められた前記第1サイズでそれぞれが構成される前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する
     請求項1~5のいずれか1項に記載の画像処理装置。
  7.  前記制御部は、前記符号化ストリームを、前記最も大きい符号化単位ブロックである最大符号化ユニット(Largest Coding Unit)のサイズとして予め定められた前記第1サイズでそれぞれが構成される前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する
     請求項6に記載の画像処理装置。
  8.  前記制御部は、前記符号化ストリームを、最も大きい周波数変換ブロックのサイズとして予め定められた前記第1サイズでそれぞれが構成される前記複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する
     請求項1~5のいずれか1項に記載の画像処理装置。
  9.  前記複数の第1処理部は、前記複数の第1処理に含まれる複数の第2処理を実行する複数の第2処理部を含み、
     前記制御部は、前記複数の第1処理単位ブロックを、前記第1サイズよりも小さい第2サイズでそれぞれが構成される複数の第2処理単位ブロックに分割し、前記複数の第2処理が第2処理単位ブロック毎に実行されるように、前記複数の第2処理部を制御する
     請求項1~8のいずれか1項に記載の画像処理装置。
  10.  前記複数の第1処理部は、前記複数の第1処理に含まれる複数の第2処理を実行する複数の第2処理部を含み、
     前記制御部は、前記複数の第1処理単位ブロックを、それぞれのサイズが前記第1サイズ以下である複数の第2処理単位ブロックに分割し、前記複数の第2処理が第2処理単位ブロック毎に実行されるように、前記複数の第2処理部を制御する
     請求項1~8のいずれか1項に記載の画像処理装置。
  11.  前記制御部は、輝度情報と色差情報とが分割されるように、前記複数の第1処理単位ブロックを前記複数の第2処理単位ブロックに分割し、前記複数の第2処理が第2処理単位ブロック毎に実行されるように、前記複数の第2処理部を制御する
     請求項10に記載の画像処理装置。
  12.  前記複数の第1処理部は、動き補償処理を実行する動き補償処理部を含み、
     前記制御部は、前記複数の第1処理単位ブロックを、前記第1サイズよりも小さい第3サイズでそれぞれが構成される複数の第3処理単位ブロックに分割し、前記動き補償処理が第3処理単位ブロック毎に実行されるように、前記動き補償処理部を制御し、
     前記制御部は、前記輝度情報と前記色差情報とが1つの第3処理単位ブロックに含まれるように、前記複数の第1処理単位ブロックを前記複数の第3処理単位ブロックに分割する
     請求項11に記載の画像処理装置。
  13.  前記複数の第1処理部は、動き補償処理を実行する動き補償処理部を含み、
     前記制御部は、前記動き補償処理に用いられる予測ブロックが前記第1サイズよりも大きい場合、前記予測ブロックを複数の第1処理単位ブロックに分割し、前記動き補償処理が第1処理単位ブロック毎に実行されるように、前記動き補償処理部を制御する
     請求項8に記載の画像処理装置。
  14.  前記複数の第1処理部は、面内予測処理を実行する面内予測処理部を含み、
     前記制御部は、前記面内予測処理に用いられる予測ブロックが前記第1サイズよりも大きい場合、前記予測ブロックを複数の第1処理単位ブロックに分割し、前記面内予測処理が第1処理単位ブロック毎に実行されるように、前記面内予測処理部を制御する
     請求項8に記載の画像処理装置。
  15.  前記複数の第1処理部は、ブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を実行するデブロックフィルタ処理部を含み、
     前記制御部は、前記画像が符号化される時に周波数変換処理が実行された順序に従って、前記デブロックフィルタ処理が周波数変換ブロック毎に実行されるように、前記デブロックフィルタ処理部を制御する
     請求項8、13または14に記載の画像処理装置。
  16.  画像を符号化する画像符号化方法であって、
     少なくとも2種類のサイズが存在する複数の符号化単位ブロックに前記画像を分割し、前記画像に対して符号化単位ブロック毎に符号化処理を実行する符号化処理ステップと、
     前記符号化処理が実行された前記画像に含まれるブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を、符号化単位ブロック毎とは異なる所定のデータ単位毎に、垂直境界および水平境界のうち、一方に対して実行した後、他方に対して実行するデブロックフィルタ処理ステップとを含む
     画像符号化方法。
  17.  画像を符号化する画像符号化方法であって、
     少なくとも2種類のサイズが存在する複数の符号化単位ブロックに前記画像を分割し、前記画像に対して符号化単位ブロック毎に符号化処理を実行する符号化処理ステップと、
     前記画像に対して前記符号化処理が実行された順序に従って、ブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を符号化単位ブロック毎に実行するデブロックフィルタ処理ステップとを含む
     画像符号化方法。
  18.  画像を符号化単位ブロック毎に符号化する画像符号化方法であって、
     前記画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割し、前記符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する周波数変換処理ステップと、
     前記符号化単位ブロックに対して前記周波数変換処理が実行された順序に従って、ブロックの境界の符号化歪みを除去するためのデブロックフィルタ処理を周波数変換ブロック毎に実行するデブロックフィルタ処理ステップとを含む
     画像符号化方法。
  19.  画像を符号化単位ブロック毎に符号化する画像符号化方法であって、
     前記画像に含まれる符号化単位ブロックを複数の周波数変換ブロックに分割し、前記符号化単位ブロックに対して周波数変換ブロック毎に周波数変換処理を実行する周波数変換処理ステップと、
     前記周波数変換処理が実行された前記符号化単位ブロックを符号化して、前記画像の輝度情報および色差情報が周波数変換ブロック毎に一緒にまとまるように符号化ストリームを生成する符号化処理ステップとを含む
     画像符号化方法。
  20.  少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す画像処理方法であって、
     それぞれが前記複数の第1処理のいずれかを実行することによって、前記符号化ストリームに対して前記パイプライン方式で前記複数の第1処理を施す複数の第1処理ステップと、
     前記符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理ステップを制御する制御ステップとを含む
     画像処理方法。
  21.  請求項20に記載の画像処理方法に含まれるステップをコンピュータに実行させるためのプログラム。
  22.  少なくとも2種類のサイズが存在する複数の符号化単位ブロックに画像が分割され、前記画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して、パイプライン方式で複数の第1処理を施す集積回路であって、
     それぞれが前記複数の第1処理のいずれかを実行することによって、前記符号化ストリームに対して前記パイプライン方式で前記複数の第1処理を施す複数の第1処理部と、
     前記符号化ストリームを、第1サイズでそれぞれが構成される複数の第1処理単位ブロックに分割し、前記複数の第1処理が第1処理単位ブロック毎に実行されるように、前記複数の第1処理部を制御する制御部とを備える
     集積回路。
     
PCT/JP2011/005575 2010-10-04 2011-10-03 画像処理装置、画像符号化方法および画像処理方法 WO2012046435A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US13/877,389 US9414059B2 (en) 2010-10-04 2011-10-03 Image processing device, image coding method, and image processing method
JP2012537581A JPWO2012046435A1 (ja) 2010-10-04 2011-10-03 画像処理装置、画像符号化方法および画像処理方法
CN201180046531.9A CN103125119B (zh) 2010-10-04 2011-10-03 图像处理装置、图像编码方法以及图像处理方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010224547 2010-10-04
JP2010-224547 2010-10-04

Publications (1)

Publication Number Publication Date
WO2012046435A1 true WO2012046435A1 (ja) 2012-04-12

Family

ID=45927441

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/005575 WO2012046435A1 (ja) 2010-10-04 2011-10-03 画像処理装置、画像符号化方法および画像処理方法

Country Status (4)

Country Link
US (1) US9414059B2 (ja)
JP (1) JPWO2012046435A1 (ja)
CN (1) CN103125119B (ja)
WO (1) WO2012046435A1 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013076888A1 (ja) * 2011-11-21 2013-05-30 パナソニック株式会社 画像処理装置および画像処理方法
WO2013108330A1 (ja) * 2012-01-18 2013-07-25 パナソニック株式会社 画像復号装置、画像符号化装置、画像復号方法および画像符号化方法
JP2014007469A (ja) * 2012-06-21 2014-01-16 Canon Inc 画像符号化装置及び画像符号化方法
JP2015228651A (ja) * 2014-05-30 2015-12-17 ▲ホア▼▲ウェイ▼技術有限公司 ビデオ復号方法及びビデオデコーダ
JP2016036134A (ja) * 2014-07-31 2016-03-17 富士通株式会社 画像処理方法及び装置
JPWO2015146646A1 (ja) * 2014-03-28 2017-04-13 ソニー株式会社 画像復号装置および方法
JPWO2015145504A1 (ja) * 2014-03-25 2017-04-13 株式会社ソシオネクスト 画像復号装置、画像復号方法、及び集積回路
KR20170053031A (ko) * 2015-11-05 2017-05-15 삼성전자주식회사 복수개의 블록 기반의 파이프라인을 이용한 데이터 처리 속도 개선 장치 및 그 동작 방법
JP2017535142A (ja) * 2014-10-01 2017-11-24 クアルコム,インコーポレイテッド ビデオコーディングのためのパイプライン型イントラ予測ハードウェアアーキテクチャ
WO2020137643A1 (ja) * 2018-12-28 2020-07-02 ソニー株式会社 画像処理装置および方法
JP2021536156A (ja) * 2018-08-17 2021-12-23 キヤノン株式会社 ビデオサンプルの変換されたブロックを符号化および復号する方法、装置、およびシステム

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103338374B (zh) 2013-06-21 2016-07-06 华为技术有限公司 图像处理方法及装置
CN105284110B (zh) * 2013-07-31 2019-04-23 太阳专利托管公司 图像编码方法及图像编码装置
GB2520310A (en) * 2013-11-15 2015-05-20 Sony Corp A method, server, client and software
US20160029022A1 (en) * 2014-07-25 2016-01-28 Mediatek Inc. Video processing apparatus with adaptive coding unit splitting/merging and related video processing method
US10123028B2 (en) * 2014-09-17 2018-11-06 Mediatek Inc. Syntax parsing apparatus with multiple syntax parsing circuits for processing multiple image regions within same frame or processing multiple frames and related syntax parsing method
CN107409207B (zh) * 2015-03-23 2020-07-28 Lg 电子株式会社 在内预测模式的基础上处理图像的方法及其装置
DE112015006587T5 (de) 2015-06-04 2018-05-24 Intel Corporation Adaptive Batch-Codierung für Slow-Motion-Videoaufzeichnung
US10846142B2 (en) 2016-02-23 2020-11-24 Intel Corporation Graphics processor workload acceleration using a command template for batch usage scenarios
WO2018020299A1 (en) * 2016-07-29 2018-02-01 Chan Kam Fu Lossless compression and decompression methods
WO2019053915A1 (ja) * 2017-09-15 2019-03-21 富士ゼロックス株式会社 画像処理装置、画像処理方法、及び画像処理プログラム
JP7082529B2 (ja) * 2018-06-06 2022-06-08 ルネサスエレクトロニクス株式会社 半導体装置及び半導体装置による処理方法
AU2018217333A1 (en) * 2018-08-17 2020-03-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
US20240080499A1 (en) * 2022-09-05 2024-03-07 Samsung Electronics Co.,Ltd. Video decoding device, operating method thereof, display device, and video system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008271127A (ja) * 2007-04-19 2008-11-06 Nec Electronics Corp 符号化装置
JP2009081830A (ja) * 2007-09-05 2009-04-16 Panasonic Corp 動画像圧縮符号化における符号化処理方法及び符号化処理装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11252549A (ja) 1998-02-27 1999-09-17 Toshiba Corp 画像符号化/復号化装置
JP2001275116A (ja) * 2000-03-24 2001-10-05 Sharp Corp 画像処理装置
CN1235411C (zh) * 2003-10-17 2006-01-04 中国科学院计算技术研究所 基于流水线的帧内预测模式块编码加速方法
JP4289126B2 (ja) * 2003-11-04 2009-07-01 ソニー株式会社 データ処理装置およびその方法と符号化装置
JP4577048B2 (ja) * 2004-03-11 2010-11-10 パナソニック株式会社 画像符号化方法、画像符号化装置および画像符号化プログラム
JP4787044B2 (ja) 2005-03-31 2011-10-05 パナソニック株式会社 画像復号装置、画像復号方法、画像復号プログラム、画像復号集積回路
US8588304B2 (en) 2005-03-31 2013-11-19 Panasonic Corporation Video decoding device, video decoding method, video decoding program, and video decoding integrated circuit
EP2055108B1 (en) 2006-08-25 2011-04-20 Thomson Licensing Methods and apparatus for reduced resolution partitioning
US20100166053A1 (en) * 2007-01-31 2010-07-01 Sony Corporation Information processing device and method
JP4254867B2 (ja) * 2007-01-31 2009-04-15 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
US20090060039A1 (en) 2007-09-05 2009-03-05 Yasuharu Tanaka Method and apparatus for compression-encoding moving image
EP2238764A4 (en) * 2008-01-25 2015-04-22 Hewlett Packard Co CODE MODE SELECTION FOR BLOCK-BASED CODING
US8754895B2 (en) * 2008-09-09 2014-06-17 Sony Corporation Pipelined image processing engine
CN101686388B (zh) 2008-09-24 2013-06-05 国际商业机器公司 视频流编码装置及其方法
KR20100071865A (ko) 2008-12-19 2010-06-29 삼성전자주식회사 멀티 코어 프로세스 방식의 영상 신호 처리장치에서 영상 프레임 구성 및 복호화 방법과 그 영상 신호 처리장치
US20100169892A1 (en) * 2008-12-29 2010-07-01 Advanced Micro Devices, Inc. Processing Acceleration on Multi-Core Processor Platforms
JP5449791B2 (ja) 2009-02-02 2014-03-19 オリンパス株式会社 データ処理装置および画像処理装置
JP2011041037A (ja) * 2009-08-12 2011-02-24 Sony Corp 画像処理装置および方法
US10033997B2 (en) 2010-06-23 2018-07-24 Panasonic Intellectual Property Management Co., Ltd. Image decoding apparatus, image decoding method, integrated circuit, and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008271127A (ja) * 2007-04-19 2008-11-06 Nec Electronics Corp 符号化装置
JP2009081830A (ja) * 2007-09-05 2009-04-16 Panasonic Corp 動画像圧縮符号化における符号化処理方法及び符号化処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Test Model under Consideration, Output Document (draft007)", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 1ST MEETING: DRESDEN, DE, DOCUMENT: JCTVC-A205, ITU-T, July 2010 (2010-07-01) *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018029379A (ja) * 2011-11-21 2018-02-22 パナソニックIpマネジメント株式会社 画像処理装置
JPWO2013076888A1 (ja) * 2011-11-21 2015-04-27 パナソニックIpマネジメント株式会社 画像処理装置および画像処理方法
WO2013076888A1 (ja) * 2011-11-21 2013-05-30 パナソニック株式会社 画像処理装置および画像処理方法
JP2018191338A (ja) * 2011-11-21 2018-11-29 パナソニックIpマネジメント株式会社 画像処理装置および画像処理方法
US9674528B2 (en) 2011-11-21 2017-06-06 Panasonic Intellectual Property Management Co., Ltd. Image processing apparatus and image processing method
WO2013108330A1 (ja) * 2012-01-18 2013-07-25 パナソニック株式会社 画像復号装置、画像符号化装置、画像復号方法および画像符号化方法
US9153037B2 (en) 2012-01-18 2015-10-06 Panasonic Intellectual Property Management Co., Ltd. Image decoding device, image encoding device, image decoding method, and image encoding method
JP2014007469A (ja) * 2012-06-21 2014-01-16 Canon Inc 画像符号化装置及び画像符号化方法
JPWO2015145504A1 (ja) * 2014-03-25 2017-04-13 株式会社ソシオネクスト 画像復号装置、画像復号方法、及び集積回路
US10298927B2 (en) 2014-03-28 2019-05-21 Sony Corporation Image decoding device and method
JPWO2015146646A1 (ja) * 2014-03-28 2017-04-13 ソニー株式会社 画像復号装置および方法
JP2015228651A (ja) * 2014-05-30 2015-12-17 ▲ホア▼▲ウェイ▼技術有限公司 ビデオ復号方法及びビデオデコーダ
JP2016036134A (ja) * 2014-07-31 2016-03-17 富士通株式会社 画像処理方法及び装置
JP2017535142A (ja) * 2014-10-01 2017-11-24 クアルコム,インコーポレイテッド ビデオコーディングのためのパイプライン型イントラ予測ハードウェアアーキテクチャ
KR20170053031A (ko) * 2015-11-05 2017-05-15 삼성전자주식회사 복수개의 블록 기반의 파이프라인을 이용한 데이터 처리 속도 개선 장치 및 그 동작 방법
KR102171119B1 (ko) * 2015-11-05 2020-10-28 삼성전자주식회사 복수개의 블록 기반의 파이프라인을 이용한 데이터 처리 속도 개선 장치 및 그 동작 방법
JP2021536156A (ja) * 2018-08-17 2021-12-23 キヤノン株式会社 ビデオサンプルの変換されたブロックを符号化および復号する方法、装置、およびシステム
JP7191195B2 (ja) 2018-08-17 2022-12-16 キヤノン株式会社 ビデオサンプルの変換されたブロックを符号化および復号する方法、装置、およびシステム
JP7391171B2 (ja) 2018-08-17 2023-12-04 キヤノン株式会社 ビデオサンプルの変換されたブロックを符号化および復号する方法、装置、およびシステム
WO2020137643A1 (ja) * 2018-12-28 2020-07-02 ソニー株式会社 画像処理装置および方法
JPWO2020137643A1 (ja) * 2018-12-28 2021-11-11 ソニーグループ株式会社 画像処理装置および方法
JP7414008B2 (ja) 2018-12-28 2024-01-16 ソニーグループ株式会社 画像処理装置および方法

Also Published As

Publication number Publication date
CN103125119A (zh) 2013-05-29
JPWO2012046435A1 (ja) 2014-02-24
US20130188723A1 (en) 2013-07-25
CN103125119B (zh) 2016-10-26
US9414059B2 (en) 2016-08-09

Similar Documents

Publication Publication Date Title
WO2012046435A1 (ja) 画像処理装置、画像符号化方法および画像処理方法
JP6390883B2 (ja) 画像処理装置
JP5518069B2 (ja) 画像復号装置、画像符号化装置、画像復号方法、画像符号化方法、プログラムおよび集積回路
WO2011161949A1 (ja) 画像復号装置、画像復号方法、集積回路およびプログラム
JP5574345B2 (ja) 符号化方法、エラー検出方法、復号方法、符号化装置、エラー検出装置及び復号装置
WO2012035730A1 (ja) 画像復号装置、画像符号化装置、それらの方法、プログラム、集積回路およびトランスコード装置
US8718149B2 (en) Image coding method and image decoding method
WO2011048764A1 (ja) 復号装置、復号方法、プログラム、及び集積回路
WO2013108330A1 (ja) 画像復号装置、画像符号化装置、画像復号方法および画像符号化方法
JP5999515B2 (ja) 画像処理装置、及び、画像処理方法
JP6260921B2 (ja) 画像処理装置および画像処理方法
JP5546044B2 (ja) 画像復号装置、画像符号化装置、画像復号回路及び画像復号方法
JP5468604B2 (ja) 画像復号装置、集積回路、画像復号方法及び画像復号システム
WO2013076897A1 (ja) 画像処理装置および画像処理方法
WO2011129052A1 (ja) 画像復号装置、画像符号化装置、画像復号方法および画像符号化方法
JP2011182132A (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、集積回路およびプログラム

Legal Events

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

Ref document number: 201180046531.9

Country of ref document: CN

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

Ref document number: 11830369

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13877389

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2012537581

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: 11830369

Country of ref document: EP

Kind code of ref document: A1