WO2013128526A1 - 画像処理装置、及び、画像処理方法 - Google Patents

画像処理装置、及び、画像処理方法 Download PDF

Info

Publication number
WO2013128526A1
WO2013128526A1 PCT/JP2012/007805 JP2012007805W WO2013128526A1 WO 2013128526 A1 WO2013128526 A1 WO 2013128526A1 JP 2012007805 W JP2012007805 W JP 2012007805W WO 2013128526 A1 WO2013128526 A1 WO 2013128526A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
processing
stream
processing unit
image
Prior art date
Application number
PCT/JP2012/007805
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
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Priority to JP2013523429A priority Critical patent/JP5999515B2/ja
Priority to CN201280004339.8A priority patent/CN103404139B/zh
Priority to US13/976,746 priority patent/US9723308B2/en
Publication of WO2013128526A1 publication Critical patent/WO2013128526A1/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/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/423Methods 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 characterised by memory arrangements
    • H04N19/426Methods 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 characterised by memory arrangements using memory downsizing methods
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present invention relates to an image processing apparatus that performs image processing on a coded stream obtained by coding an image for each coding unit block.
  • An image coding apparatus that encodes a moving image divides each picture constituting the moving image into a plurality of blocks. Then, the image coding apparatus codes each block in raster scan order. The image coding apparatus generates a coded stream (bit stream) by coding and compressing a moving image. The image decoding apparatus decodes this encoded stream block by block in raster scan order, and reproduces each picture of the original moving image.
  • the image decoding apparatus is as follows. In order to decode an image encoded according to the H.264 standard, first, the encoded stream is read. And an image decoding apparatus performs variable-length decoding, after decoding various header information. The image decoding apparatus dequantizes the coefficient information obtained by variable-length decoding and performs inverse frequency conversion. Thereby, a difference image is generated.
  • the image decoding apparatus performs intra prediction (sometimes called intra prediction) or inter prediction (sometimes called inter prediction) according to the block type obtained by variable length decoding. Thereby, the image decoding apparatus generates a predicted image. After that, the image decoding apparatus performs an image reconstruction process by adding the difference image to the predicted image. Then, the image decoding apparatus decodes the decoding target image (coded image) by performing deblocking filter processing on the reconstructed image obtained by the image reconstruction processing.
  • intra prediction sometimes called intra prediction
  • inter prediction sometimes called inter prediction
  • each block is always configured by 16 ⁇ 16 pixels, and each process for decoding is also generally performed in block units of 16 ⁇ 16 pixels.
  • Non-Patent Document 2 the conventional H.
  • the size of the coding unit block corresponding to the H.264 standard becomes variable.
  • the image coding apparatus according to this technique can also code an image in a block larger than the conventional 16 ⁇ 16 pixels, and coding efficiency is improved.
  • an apparatus that handles an encoded stream such as an image encoding apparatus and an image decoding apparatus, is referred to as an image processing apparatus.
  • Non-Patent Document 2 and Patent Document 1 As the size of blocks constituting an image increases, a large capacity is required for a storage element used to process the image. There is a problem of becoming
  • the present invention is to solve the above-mentioned problems, and provides an image processing apparatus capable of reducing the capacity of a storage element used to process an image.
  • An image processing apparatus is an image processing apparatus that performs predetermined processing on a coded stream generated by coding an image, the first processing of the coded stream being performed on the coded stream.
  • a first processing unit that sequentially outputs at least one component included in the first processing unit for each first processing unit by performing processing; and a plurality of output units from the first processing unit By replacing the order of the components, for each second process unit different from the first process unit, an interchange unit sequentially outputting at least one component included in the second process unit, and from the interchange unit
  • a second processing unit that performs a second process on each of the plurality of output components for each of the second processing units.
  • this general or specific aspect may be realized by a system, a method, an integrated circuit, a computer program, or a recording medium such as a computer readable CD-ROM, and the system, the method, the integrated circuit, the computer program It may be realized by any combination of recording media.
  • the image processing apparatus of the present invention can reduce the capacity of a storage element used to process an image.
  • FIG. 1A is a diagram showing the storage order of coefficient information for CUs and TUs of a predetermined size.
  • FIG. 1B is a diagram showing the storage order of coefficient information for CUs and TUs of other sizes.
  • FIG. 2 is a block diagram showing the configuration of a conventional image processing apparatus.
  • FIG. 3 is a block diagram showing the configuration of an image processing apparatus assumed.
  • FIG. 4 is a block diagram showing the configuration of another assumed image processing apparatus.
  • FIG. 5 is a block diagram showing a configuration of the image decoding apparatus in the first embodiment.
  • FIG. 6 is a block diagram showing the configuration of the image decoding apparatus in Embodiment 1 from another viewpoint.
  • FIG. 7A is a configuration diagram showing the configuration of a stream.
  • FIG. 7B is a block diagram showing the structure of a picture.
  • FIG. 7C is a diagram showing an arrangement of data in the stream.
  • FIG. 8 is a flowchart showing a decoding operation by the image decoding apparatus in the first embodiment.
  • FIG. 9 is a flowchart showing a decoding operation of a coding unit (CU) by the image decoding apparatus in the first embodiment.
  • FIG. 10 is a diagram for explaining replacement of coefficient information in the first embodiment.
  • FIG. 11 is a flowchart showing the processing operation of the order change unit in the first embodiment.
  • FIG. 12 is a flow chart showing the order of writing a plurality of pieces of coefficient information to the memory in the first embodiment.
  • FIG. 13 is a diagram showing the order in which the plurality of pieces of coefficient information are written to the memory and the order in which they are read out in the first embodiment.
  • FIG. 14 is a block diagram showing the configuration of the image processing apparatus according to the second embodiment.
  • FIG. 15 is a block diagram showing a configuration of a stream conversion unit in the second embodiment.
  • FIG. 16 is a flowchart showing the processing operation of the stream conversion unit in the second embodiment.
  • FIG. 17 is a block diagram showing the configuration of the image decoding apparatus in the second embodiment.
  • FIG. 18 is a block diagram showing the configuration of the image processing apparatus according to the third embodiment.
  • FIG. 19 is a block diagram showing a configuration of a stream conversion unit in the third embodiment.
  • FIG. 20 is a flowchart showing the processing operation of the division unit in the third embodiment.
  • FIG. 21 is a flowchart showing coded information processing by a division unit in the third embodiment.
  • FIG. 22 is a timing chart to explain parallel processing of variable-length coding in the third embodiment.
  • FIG. 23 is a block diagram showing the configuration of the image processing apparatus according to the fourth embodiment.
  • FIG. 24 is a block diagram showing a configuration of a stream conversion unit in the fourth embodiment.
  • FIG. 25 is a flowchart showing the processing operation of the marker insertion unit in the fourth embodiment.
  • FIG. 26 is a flowchart showing coefficient information marker insertion processing by the marker insertion unit in the fourth embodiment.
  • FIG. 27 is a diagram for describing insertion of a marker into a variable length decoded stream according to the fourth embodiment.
  • FIG. 28 is a block diagram showing the configuration of the image processing apparatus according to the fifth embodiment.
  • FIG. 29 is a block diagram showing a configuration of a stream conversion unit in the fifth embodiment.
  • FIG. 30 is a block diagram showing configurations of a variable length decoding unit, an inverse quantization unit, an inverse frequency conversion unit, a motion vector calculation unit, and a motion compensation unit of the image decoding apparatus according to the fifth embodiment.
  • FIG. 31 is a block diagram showing a configuration of an intra prediction unit of the image decoding apparatus in the fifth embodiment.
  • FIG. 32 is an overall configuration diagram of a content supply system for realizing content distribution service.
  • FIG. 32 is an overall configuration diagram of a content supply system for realizing content distribution service.
  • FIG. 33 is an overall configuration diagram of a digital broadcasting system.
  • FIG. 34 is a block diagram showing a configuration example of a television.
  • FIG. 35 is a block diagram showing a configuration example of an information reproducing / recording unit for reading and writing information on a recording medium which is an optical disk.
  • FIG. 36 is a view showing an example of the structure of a recording medium which is an optical disc.
  • FIG. 37 is a block diagram showing an example of the configuration of an integrated circuit for realizing the image decoding process and the image encoding process.
  • FIG. 38 is a block diagram showing an example of the configuration of an integrated circuit for realizing the image decoding process and the image encoding process.
  • FIG. 39A is a block diagram showing the configuration of the image processing apparatus.
  • FIG. 39B is a flowchart showing an image processing method.
  • a coding unit (hereinafter, CU: Coding Unit) is defined as a data unit of coding.
  • This CU corresponds to the coding unit block.
  • this CU is a data unit (minimum unit) that can switch the prediction method between intra prediction and inter prediction, similarly to a macro block (hereinafter referred to as MB) in the conventional coding standard. It is defined as the most basic block size.
  • the size of this CU is one of 8x8 pixels, 16x16 pixels, 32x32 pixels, and 64x64 pixels for luminance. If the size of the CU is 64x64 pixels, the size is H.264. It is 16 times of 264 MB. That is, in Non-Patent Document 2, H.
  • a frequency conversion unit (hereinafter, TU: transform unit) is defined as a unit for frequency conversion of the CU.
  • This TU corresponds to the above frequency conversion unit block. Further, the size of this TU is any of 4 ⁇ 4 pixels, 8 ⁇ 8 pixels, 16 ⁇ 16 pixels, 32 ⁇ 32 pixels, 4 ⁇ 16 pixels, 16 ⁇ 4 pixels, 8 ⁇ 32 pixels, and 32 ⁇ 8 pixels for luminance.
  • FIGS. 1A and 1B are diagrams showing examples of a bit stream (coded stream) coded according to the standard of Non-Patent Document 2.
  • FIG. The image is encoded in CU units, and in the CU, each piece of coefficient information to be decoded is arranged in the order of at least one coefficient information of luminance (luminance information) and at least one coefficient information of chrominance (color difference information) ing.
  • the size of TU is the same as or smaller than the size of CU. Therefore, in the CU, luminance information (Y) and color difference information (Cb / Cr) exist as many as the number of TUs included in the CU. This example will be described using FIGS.
  • luminance Y (or Y), color difference Cb (or Cb), and color difference Cr (or Cr) mean coefficient information (color component) of the corresponding type.
  • CUs or TUs are arranged in the order shown in FIG. 1B, and in the coded stream, four luminances Y, four color differences Cb and four color differences Cr are respectively Y0, Cb0, Cr0. , Y1, Cb1, Cr1, Y2, Cb2, Cr2, Y3, Cb3, and Cr3 are stored in this order.
  • Non-Patent Document 1 the sizes of the luminance information and the chrominance information are 16 ⁇ 16 pixels and 8 ⁇ 8 pixels, respectively. Furthermore, the luminance information and the chrominance information are stored in units of 8 ⁇ 8 pixels, and their storage order (arrangement) is fixed. However, in the coded stream according to the standard of Non-Patent Document 2, as described above, the size of the luminance information and the color difference information is variable (maximum 32 ⁇ 32 pixels, minimum 4 ⁇ 4 pixels), and luminance according to those sizes. There is a feature that the storage order (arrangement) of information and color difference information is different.
  • Non-Patent Document 2 the size of the coding unit (CU) which is a coding unit block is made variable, and the maximum size is 64 ⁇ 64 pixels and H.264.
  • the coding efficiency is improved by setting the value to 16 times that of H.264.
  • Patent Document 1 discloses an image processing apparatus using a pipeline processing technology that improves the efficiency of decoding processing by performing each processing for decoding such a coded stream in parallel. (Image decoding apparatus) is described.
  • FIG. 2 is a block diagram showing the configuration of the image processing apparatus of Patent Document 1. As shown in FIG.
  • the inverse quantization unit 602 reads data from the memory 705 and writes the result in the memory 706.
  • the inverse frequency conversion unit 506 reads data from the memory 706 and writes the result in the memory 707.
  • the memory 706 between the inverse quantization unit 602 and the inverse frequency conversion unit 506 needs to hold data required by each process at one time.
  • other processing units such as between the variable-length decoding unit 504 and the inverse quantization unit 602).
  • FIG. 3 is a block diagram showing the configuration of an image processing apparatus assumed from Non-Patent Document 1 and Patent Document 1. As shown in FIG.
  • FIG. 4 is a block diagram showing a configuration of an image processing apparatus assumed from Non-Patent Document 2 and Patent Document 1. As shown in FIG.
  • the memories 734 to 737 only hold data of 16 times the capacity of the memory 731, that is, 12,288 pixels.
  • the problem is that a lot of space is required. Such memories are very large and will result in increased costs. Also, if the memory is large, power consumption will increase.
  • the memory refers to a memory element capable of storing data.
  • Non-Patent Document 2 in the coding unit (CU), The size of the data can not simply be reduced because the storage order and size of the data differ depending on the size.
  • both are blocks with a frequency conversion unit (TU) size of 32 ⁇ 32 pixels, but the CU sizes are different. Since the luminance Y, the chrominance Cb, and the chrominance Cr are stored in this order in the CU, even if they are TUs of the same size, the order in which the TUs appear in the stream differs in each encoded stream.
  • TU frequency conversion unit
  • the head 32x32 pixels are both luminance Y0 corresponding to TU0 on the upper left, but the next appearing pixel is luminance 32x32 pixels corresponding to TU1 on the upper right in the case of the encoded stream shown in FIG. 1A. Belongs to Y1.
  • the pixel appearing next belongs to the color difference Cb0 for 16 ⁇ 16 pixels corresponding to TU0 at the upper left.
  • the present invention provides an image processing apparatus capable of reducing the capacity of a storage element used to process an image while suppressing a decrease in processing efficiency (coding efficiency or decoding efficiency). .
  • an image processing apparatus is an image processing apparatus that performs predetermined processing on a coded stream generated by coding an image, and the code
  • a first processing unit for sequentially outputting at least one component included in the first processing unit for each first processing unit by performing the first processing on the streamed stream;
  • At least one component included in the second processing unit is sequentially output for each second processing unit different from the first processing unit by changing the order of the plurality of components output from the processing unit.
  • a second processing unit that performs a second process for each of the plurality of components output from the replacement unit and the second processing unit.
  • the replacement unit may sequentially output at least one component included in the second processing unit for each of the second processing units smaller in size than the first processing unit.
  • the order of the plurality of components is switched, and the plurality of components are processed for each second processing unit. It is output.
  • the second processing for the plurality of components is performed for each second processing unit, the plurality of components for which the second processing has been performed are stored in the storage element for each second processing unit. be able to. Therefore, when the second processing unit is smaller than the first processing unit, the capacity of the storage element for storing the plurality of components subjected to the second processing can be reduced. That is, for example, the capacity of the storage element for performing pipeline processing can be suppressed. Furthermore, since the capacity of the memory element can be reduced, cost and power consumption can be suppressed. Furthermore, the reduction in the processing efficiency of the first process can be prevented by the large first process unit.
  • the second processing unit is larger than the first processing unit, the second processing is performed for each large processing unit, so that the processing efficiency for the coded stream can be improved.
  • the first processing unit is a coding unit used for coding the image.
  • the second processing unit may be a frequency conversion unit used for frequency conversion of the coding unit, or a processing unit having a smaller size than the frequency conversion unit.
  • the first processing unit sequentially outputs at least one component included in the first processing unit for each of the first processing units of a variable size according to the configuration of the encoded stream. It is also good.
  • the replacement unit may sequentially output at least one component included in the second processing unit for each of the second processing units of a variable size according to the configuration of the encoded stream.
  • the image processing apparatus may further include a third processing unit that decodes the encoded stream by performing a third process on the stream generated by the second process.
  • the first processing unit may be a minimum unit capable of switching the prediction method used for encoding the image to intra prediction and inter prediction.
  • the first processing unit is a coding unit
  • a coded stream composed of the coding units is decoded (for example, by pipeline processing)
  • the capacity of the storage element used to do this can be reduced.
  • processing can be appropriately performed on variable-sized first processing units and second processing units.
  • the first processing unit sequentially outputs each of a plurality of color components as a plurality of components included in the first processing unit
  • the replacement unit is configured to output a plurality of components output from the first processing unit.
  • the plurality of color components included in the second processing unit may be sequentially output by changing the order of the color components.
  • the first processing unit sequentially stores each of the plurality of color components by sequentially outputting each of the plurality of color components, and the replacement unit is stored in the storage unit.
  • the order of the plurality of color components may be switched by sequentially reading out each of the plurality of color components in an order different from the order of the plurality of color components.
  • the replacement unit sequentially writes each of the plurality of color components in the storage unit in an order different from the order of the plurality of color components output from the first processing unit, thereby the order of the plurality of color components
  • the second processing unit may sequentially read out the plurality of color components in accordance with the order of the plurality of color components stored in the storage unit.
  • the second processing unit may use a plurality of color components included in the second processing unit to perform reconstruction processing for reconstructing an image corresponding to the second processing unit, the second processing unit. You may perform as a process contained in a process.
  • the first processing unit may perform variable length decoding as the first processing, and the second processing unit may perform inverse quantization as processing included in the second processing.
  • the first processing unit performs variable length decoding as the first processing, sequentially outputs a color component as at least one component included in the first processing unit, and the switching unit is configured to The order of the plurality of color components output from the processing unit 1 may be changed, and the second processing unit may perform variable-length coding as the process included in the second process.
  • the encoded stream is subjected to variable length decoding, and in a state in which a plurality of components are replaced, variable length encoding is performed again.
  • the coded stream can be transcoded.
  • a variable length coding method capable of performing variable length decoding more easily than the variable length coding method used in generation of a coded stream can be used in the second process.
  • the burden required to decode a transcoded encoded stream consisting of a plurality of color components output by the second process can be less than the burden required to decode a transcoded code stream. it can. That is, the processing load of the image decoding apparatus required to decode the encoded stream can be reduced, and the performance guarantee of the apparatus can be facilitated.
  • the first processing unit performs variable length decoding as the first processing, sequentially outputs a color component as at least one component included in the first processing unit, and the switching unit is configured to A division unit that classifies each of a plurality of color components output from the processing unit 1 according to the type of color component, and variable-length coding is performed on the plurality of color components belonging to the type for each type of color component
  • a variable length coding unit for storing a stream generated by the variable length coding in a storage unit; and the first processing from a stream generated for each type of color component stored in the storage unit.
  • variable length coding unit By sequentially reading out each of the plurality of color components in an order different from the order of the plurality of color components output from the unit, to generate a transposed encoded stream in which the order of the plurality of color components is changed
  • the variable length coding unit performs variable length coding in parallel for each type of color component, and the replaced coded stream has the size of the second processing unit and It may include coding units of the same size.
  • the first processing unit performs variable length decoding as the first processing, and sequentially outputs a color component as at least one component included in the first processing unit, and the replacement unit is configured to perform the first processing.
  • a marker insertion unit for adding a marker for identifying the type of the color component to each of a plurality of color components output from the processing unit 1 and a marker added by the marker insertion unit
  • Each type of a plurality of color components output from the first processing unit is identified, and for each type of color component, variable length coding is performed on a plurality of color components belonging to the type, and the variable length coding
  • a plurality of variable-length encoding units for storing a stream generated by the storage unit in a storage unit, and a plurality of streams output from the first processing unit from streams generated for each color component type stored in the storage unit
  • a stream reconstruction unit that generates an interchanged encoded stream in which the order of the plurality of color components is interchanged by sequentially reading out the plurality of color components in an order different from the order of the color components, and the variable The long coding unit may perform variable-length coding in parallel for each of the color component types.
  • variable-length coding for the luminance color component and variable-length coding for the chrominance color component are performed in parallel. Therefore. Variable-length coding can be speeded up and operation efficiency can be improved.
  • the stream reconstruction unit sequentially adds a marker to each of the plurality of color components by sequentially reading out the plurality of color components together with a marker added to each of the plurality of color components.
  • the second encoded processing unit generates the replaced encoded stream, and the second processing unit generates a plurality of colors belonging to each type of the color component based on the plurality of markers included in the replaced encoded stream.
  • a variable length decoding unit that performs variable length decoding on a component, an inverse quantization unit that performs inverse quantization on the plurality of variable length decoded color components belonging to the type for each type of the color component, and the color component
  • the color component data including a plurality of markers is generated by performing inverse frequency conversion on the plurality of dequantized color components belonging to the type for each type of Reverse frequency conversion unit, and color component data generated for each type of color component are identified based on the plurality of markers included in the color component data, and in the order replaced by the replacement unit,
  • a component reconstruction unit configured to reconstruct the plurality of color components such that the plurality of color components subjected to inverse frequency conversion are arranged, the variable-length decoding unit, the inverse quantization unit, and the inverse frequency conversion
  • Each unit may perform processing on each of the types of color components in parallel.
  • variable length decoding for example, the process for the luminance color component and the process for the chrominance color component are performed in parallel.
  • Variable-length decoding, inverse quantization and inverse frequency conversion can be speeded up, and the operating efficiency can be improved.
  • the first processing unit is configured to include a plurality of components included in the first processing unit, four luminance components, and four first color difference components ( Cb) outputting the four second color difference components (Cr) in order
  • the replacement unit is included in the second processing unit for each second processing unit by switching the order of the plurality of components.
  • the plurality of components may be output in the order of one luminance component, one first color difference component, and one second color difference component.
  • expressions such as 64 ⁇ 64 pixels and 32 ⁇ 32 pixels mean sizes such as 64 pixels ⁇ 64 pixels and 32 pixels ⁇ 32 pixels, respectively.
  • expressions such as a block, a data unit, a coding unit (CU) and the like respectively mean an integrated area. Each of them may mean an image area. Alternatively, they may mean data areas in the coded stream, respectively.
  • the image may be any of a moving image, a still image, a plurality of pictures constituting the moving image, one picture, and a part of the picture.
  • Embodiment 1 The image decoding apparatus, which is the image processing apparatus according to the present embodiment, is characterized in that the dequantization unit has an order changing unit that changes coefficient information (components) in a coded stream.
  • the image decoding apparatus performs variable length decoding on a coded stream, and then rearranges coefficient information stored in units of coding units (CUs) by the reordering unit, thereby performing CUs. Performs processing after variable-length decoding with a size smaller than the unit.
  • the image decoding apparatus performs variable length decoding on the encoded stream in CU units of 64x64 pixels, and then TU units of 32x32 pixels (brightness Y of 32x32 pixels, color difference Cb of 16x16 pixels, and 16x16 Processing after inverse quantization is performed in units of color differences Cr of pixels.
  • FIG. 5 is a block diagram showing a configuration of the image decoding apparatus in the present embodiment.
  • the image decoding apparatus 513 includes a control unit 501, a bit stream buffer 502, a frame memory 503, a variable length decoding unit 504, a permutation dequantization unit 505, an inverse frequency conversion unit 506, an intra prediction unit 507, a motion vector.
  • a calculation unit 508, a motion compensation unit 509, a switch 510, a reconstruction unit 511, and a deblocking filter unit 512 are provided.
  • the image decoding device 513 includes a memory 701, a memory 702, a memory 703, and a memory 704 (see FIG. 6).
  • FIG. 6 is a block diagram showing the configuration of the image decoding device 513 in the present embodiment from another viewpoint. That is, the image decoding device 513 includes a variable-length decoding unit 504, a permutation dequantization unit 505, an inverse frequency conversion unit 506, an image reconstruction unit 603, a deblock filter unit 512, and four memories 701 to 704.
  • the transversal dequantization unit 505 includes a reordering unit 601 and a dequantization unit 602.
  • the control unit 501, the bit stream buffer 502, and the frame memory 503 are omitted for the convenience of description.
  • the image reconstruction unit 603 includes an intra prediction unit 507, a motion vector calculation unit 508, a motion compensation unit 509, a switch 510, and a reconstruction unit 511.
  • the control unit 501 controls the entire image decoding apparatus 513.
  • the bitstream buffer 502 stores the input encoded stream.
  • the frame memory 503 stores the decoded image data.
  • the variable-length decoding unit 504 reads out the coded stream from the bit stream buffer 502 and performs variable-length decoding on the coded stream to generate a plurality of quantization values and output it to the dequantization unit 505 as a permutation. Do.
  • the exchange dequantization unit 505 exchanges the order of at least a part of the plurality of quantization values (a plurality of pieces of coefficient information). Further, the interchange dequantization unit 505 generates a plurality of frequency coefficients by performing inverse quantization on each of the plurality of quantization values in the interchanged order, and outputs the plurality of frequency coefficients to the inverse frequency transform unit 506.
  • the inverse frequency transform unit 506 generates a difference image by performing inverse frequency transform on the plurality of frequency coefficients.
  • the intra prediction unit 507 generates a predicted image by performing intra prediction (also referred to as intra prediction) on the decoding target image.
  • the motion vector calculation unit 508 calculates a motion vector and outputs the calculated motion vector to the motion compensation unit 509.
  • the motion compensation unit 509 generates a predicted image by performing motion compensation on the decoding target image using the motion vector.
  • the switch 510 switches the acquisition destination of the prediction image to any one of the intra prediction unit 507 and the motion compensation unit 509, and outputs the prediction image acquired from the acquisition destination to the reconstruction unit 511.
  • the reconstruction unit 511 performs an image reconstruction process (image reconstruction process) that generates a decoded image from the difference image generated by the inverse frequency transform and the predicted image.
  • the deblocking filter unit 512 improves the image quality of the decoded image by removing block noise of the decoded image generated by the image reconstruction processing.
  • FIGS. 7A and 7B are diagrams showing a hierarchical configuration of a coded stream.
  • a combination of a plurality of pictures is called a sequence.
  • Each picture is divided into slices.
  • the slices are divided into coding units (CUs).
  • the CU is configured of a frequency conversion unit (TU) and a prediction unit (PU).
  • the coding unit (CU) is set to a size of 64 ⁇ 64 pixels to 8 ⁇ 8 pixels.
  • the CU is a data unit (minimum unit) capable of switching the prediction method used for image coding to intra prediction and inter prediction.
  • the frequency conversion unit (TU) is set with a size of 32 ⁇ 32 pixels to 4 ⁇ 4 pixels inside the coding unit (CU).
  • the prediction unit (PU) is set with a size of 64 ⁇ 64 pixels to 4 ⁇ 4 pixels inside the coding unit (CU).
  • the PU has a mode of intra prediction or a motion vector of inter prediction.
  • FIG. 7C is a diagram showing the arrangement of each piece of data in a coded stream.
  • the coded stream is configured by hierarchically coding an image, and is used to control a sequence header for controlling a sequence, a picture header for controlling a picture, and a slice. And a coding unit (CU).
  • a sequence header for controlling a sequence
  • a picture header for controlling a picture
  • a slice for controlling a picture
  • a coding unit CU
  • SPS Sequence Parameter Set
  • PPS picture parameter Set
  • FIG. 8 is a flowchart showing a decoding operation for one sequence of a coded stream by the image decoding device 513.
  • the image decoding device 513 first decodes the sequence header (S901). Decoding of the sequence header (S901) is performed by the variable-length decoding unit 504 decoding the encoded stream stored in the bit stream buffer 502 under the control of the control unit 501. Next, similarly, the image decoding device 513 decodes the picture header (S902), and decodes the slice header (S903).
  • the image decoding device 513 decodes the CU (S904).
  • the decoding of this CU will be described in detail later.
  • the image decoding apparatus 513 determines whether it is the last CU of the slice (S905). If it is not the last CU of the slice, the image decoding apparatus 513 performs the process of S904 again to decode the next CU. If it is the last CU of the slice, the image decoding device 513 performs the process of S906.
  • the image decoding apparatus 513 determines in S906 whether the previously decoded slice is the last slice of a picture. If the slice is not the last slice of the picture, the image decoding device 513 performs the process from S903 again to decode the next slice header. If it is the last slice of the picture, the image decoding device 513 performs the process of S 907.
  • the image decoding apparatus 513 determines in S907 whether the previously decoded picture is the last picture of the sequence. If the picture is not the last picture of the sequence, the image decoding apparatus 513 performs the process from S902 again to decode the next picture header. The image decoding device 513 ends the series of decoding operations when decoding of all the pictures of the sequence is completed.
  • FIG. 9 is a flowchart showing the decoding operation for one CU by the image decoding device 513. That is, FIG. 9 shows the process of decoding the coding unit in S904 shown in FIG.
  • the image decoding device 513 performs variable-length decoding of the input encoded stream by the variable-length decoding unit 504 (S101).
  • the variable-length decoding unit 504 is configured to encode each piece of coding information (CU type, intra prediction mode, motion vector information, quantization parameter, etc.) and coefficient information (luminance Y, color difference Cb and color difference Cr) corresponding to each pixel data. Output).
  • the motion vector calculation unit 508 determines whether the CU to be decoded is an inter CU encoded using motion compensation or an intra CU encoded using intra prediction (see below). S102).
  • the motion vector calculation unit 508 calculates a motion vector using the coding information (S103). That is, the motion vector calculation unit 508 calculates a motion vector by calculating a motion vector predictor and adding this motion vector predictor and motion vector information (difference value of motion vector) included in the coded stream. .
  • the coding information is output from the variable-length decoding unit 504 to the control unit 501, and then input to each processing unit (each component of the image decoding apparatus 513).
  • the coefficient information is output to the transversal dequantization unit 505.
  • the transversal dequantization unit 505 performs dequantization processing (S104).
  • the operations of the variable length decoding unit 504 and the permutation dequantization unit 505 will be described in detail later.
  • the inverse frequency conversion unit 506 performs inverse frequency conversion (S105).
  • the control unit 501 determines whether the CU to be decoded is an inter CU or an intra CU (S106). In the case of inter CU, the control unit 501 causes the motion compensation unit 509 to input the motion vector calculated by the motion vector calculation unit 508. Then, the control unit 501 causes the motion compensation unit 509 to transfer the reference image indicated by the motion vector from the frame memory 503 (S107). The motion compensation unit 509 generates a predicted image with 1/2 pixel accuracy or 1/4 pixel accuracy using the transferred reference image (S108). That is, the motion compensation unit 509 performs motion compensation.
  • control unit 501 causes the intra prediction unit 507 to perform an inter prediction process, and generates a predicted image (S109).
  • the control unit 501 controls the switch 510 according to the determination result in step S106 to output the predicted image output to the reconstruction unit 511, the predicted image generated by the motion compensation unit 509, and the intra prediction unit 507. Switch to any of the generated predicted images.
  • the reconstruction unit 511 adds the obtained predicted image and the difference image output from the inverse frequency transform unit 506 to generate a decoded image (S110). That is, the reconstruction unit 511 performs an image reconstruction process (reconstructing an image). Next, the deblocking filter unit 512 performs deblocking filter processing for reducing block noise on the decoded image obtained by the image reconstruction processing (S111). Thereby, the decoded image subjected to the block filter process is stored in the frame memory 503. This is the end of the decoding operation of one CU.
  • variable-length decoding unit 504 the reordering unit 601, and the dequantization unit 602, which are features of the present embodiment, will be described in detail with reference to FIG.
  • decoding a 64 ⁇ 64 pixel encoding unit is considered.
  • variable-length decoding unit 504 performs variable-length decoding on the input coded stream. As a result, the variable-length decoding unit 504 outputs coding information (CU type, intra prediction mode, motion vector information, quantization parameter, etc.) and coefficient information corresponding to each pixel data.
  • coding information CU type, intra prediction mode, motion vector information, quantization parameter, etc.
  • the coefficient information output from the variable-length decoding unit 504 is passed to the reordering unit 601 via the memory 701.
  • the reordering unit 601 changes the order (arrangement) of the plurality of pieces of coefficient information in the encoded stream, and the plurality of pieces of coefficient information whose order is changed is output to the inverse quantization unit 602.
  • the inverse quantization unit 602 performs inverse quantization on the coefficient information.
  • the size of a CU which is a switching unit of inter prediction and intra prediction, is 64 ⁇ 64 pixels.
  • the size of the TU which is a frequency conversion unit is 32 ⁇ 32 pixels.
  • FIG. 10 is a diagram for explaining the reordering of a plurality of pieces of coefficient information.
  • FIG. 11 is a flowchart showing the processing operation of the order change unit 601. Note that the order of the plurality of pieces of coefficient information output from the variable-length decoding unit 504 is exchanged by the exchange.
  • the plurality of pieces of coefficient information after variable-length decoding are stored or arranged in the memory 701 in the order shown in FIG.
  • the reordering unit 601 first reads Y0 (32x32 pixels), Cb0 (16x16 pixels), and Cr0 (32x32 pixels) corresponding to the upper left TU0 of 32x32 pixels according to the flow shown in FIG. 536 pixels) are output to the inverse quantization unit 602 (S201).
  • the reordering unit 601 reads out Y1 (32 ⁇ 32 pixels), Cb1 (16 ⁇ 16 pixels), and Cr1 (16 ⁇ 16 pixels) corresponding to the upper right TU1, and dequantizes their coefficient information (1,536 pixels) It outputs to 602 (S202).
  • the reordering unit 601 reads out Y2 (32x32 pixels), Cb2 (16x16 pixels), and Cr2 (16x16 pixels) corresponding to the lower left TU2, and dequantizes their coefficient information (1,536 pixels) It outputs to 602 (S203).
  • the reordering unit 601 reads out Y3 (32 ⁇ 32 pixels), Cb3 (16 ⁇ 16 pixels), and Cr3 (16 ⁇ 16 pixels) corresponding to the lower right TU3 and inversely quantizes their coefficient information (1,536 pixels) It outputs to the part 602 (S204).
  • the reordering unit 601 sequentially reads out and outputs, for each block, the coefficient information of luminance and chrominance corresponding to a block (TU) located at the same coordinates in the CU.
  • the order of the plurality of pieces of coefficient information of each of the luminance Y, the color difference Cb and the color difference Cr is interchanged as shown in FIG. That is, the order shown in (b) of FIG. 10 is replaced with the order shown in (b) of FIG.
  • the inverse quantization unit 602 receives the coefficient information in 32 ⁇ 32 pixel units (TU units), and performs inverse quantization in the pixel units. Also, processing after inverse quantization is similarly performed in 32 ⁇ 32 pixel units (TU).
  • the dequantization unit 602 acquires, from the reordering unit 601, the coded stream in which the replacement of the plurality of coefficient information has been performed, and Y (32 ⁇ 32 pixels), Cb (16 ⁇ 16) for the coded stream. Inverse quantization is performed every 1,536 pixel unit consisting of a pixel and Cr (16 ⁇ 16 pixels). Then, the inverse quantization unit 602 stores the plurality of frequency coefficients generated by the inverse quantization in the memory 702. The inverse frequency transform unit 506 reads out a plurality of frequency coefficients from the memory 702, and performs inverse frequency transform on the plurality of frequency coefficients in units of 1536 pixels described above.
  • the inverse frequency transform unit 506 stores the difference image generated by the inverse frequency transform in the memory 703.
  • the image reconstruction unit 603 reads the difference image from the memory 703, and performs processing such as image reconstruction processing on the difference image in units of 1,536 pixels described above. Then, the image reconstruction unit 603 stores the decoded image generated by the process in the memory 704.
  • the deblocking filter unit 512 reads the decoded image from the memory 704 and performs deblocking filtering on the decoded image in units of 1,536 pixels described above.
  • the above-mentioned quantization value, frequency coefficient, and pixel have different states, but mean predetermined coefficient information or components.
  • the image decoding device 513 is an image processing device that performs predetermined processing on an encoded stream generated by encoding an image, and, for example, a first processing unit that is a variable-length decoding unit 504, for example,
  • a first processing unit that is a variable-length decoding unit 504
  • the switching unit that is the order switching unit 601 and the second processing unit that is the inverse quantization unit 602 are provided.
  • the first processing unit performs the first process on the encoded stream to sequentially output at least one component included in the first processing unit for each first processing unit.
  • the first processing unit is CU.
  • the first processing unit sequentially outputs at least one component included in the first processing unit for each first processing unit (CU) of a variable size according to the configuration of the encoded stream.
  • the interchanging unit rearranges the order of the plurality of components output from the first processing unit so that at least one of the second processing units different from the first processing unit is included in the second processing unit. Output one component sequentially.
  • the second processing unit is a TU, or a processing unit of a smaller size than a TU.
  • the interchanging unit sequentially outputs at least one component included in the second processing unit for each second processing unit of a variable size according to the configuration of the encoded stream.
  • the replacement unit sequentially outputs at least one component included in the second processing unit for each second processing unit smaller in size than the first processing unit.
  • the first processing unit sequentially outputs each of the plurality of color components as the plurality of components included in the first processing unit.
  • the interchanging unit sequentially outputs the plurality of color components included in the second processing unit by interchanging the order of the plurality of color components output from the first processing unit.
  • the plurality of color components are, for example, coefficient information of luminance Y, coefficient information of color difference Cb, and coefficient information of color difference Cr.
  • the first processing unit sequentially stores each of the plurality of color components in the storage unit by sequentially outputting each of the plurality of color components.
  • the storage unit is, for example, a memory 701.
  • the interchanging unit sequentially reads out each of the plurality of color components in an order different from the order of the plurality of color components stored in the storage unit, Change the order.
  • the second processing unit uses a plurality of color components included in the second processing unit to reconstruct an image corresponding to the second processing unit as the second processing. It may be performed as a process included. That is, the second processing unit may have a function as the image reconstruction unit 603 or the reconstruction unit 511.
  • the first processing unit may perform variable length decoding as the first process, and the second processing unit may perform inverse quantization as the process included in the second process.
  • the component may be a color component or another component (for example, coding information or the like).
  • the order of the plurality of pieces of coefficient information output by the variable-length decoding unit 504 and stored in the memory 701 is switched by the order reordering unit 601 located before the dequantization unit 602.
  • the capacities of the memory 702, the memory 703, and the memory 704 in the inverse quantization unit 602 and thereafter are two sets of 64 ⁇ 64 pixels (12,288 pixels that is the sum of each pixel of luminance Y, color difference Cb, and color difference Cr)
  • the capacity of the memory connecting the processing units after the inverse quantization unit 602 can be reduced to 1 ⁇ 4, respectively.
  • the cost of the memory can be reduced, and the power consumption can be reduced.
  • variable-length code any coding method may be used, such as a Huffman code, a run-length code, an arithmetic code, or a fixed-length code.
  • each processing unit may be realized partially or entirely by a circuit using dedicated hardware, or may be realized by a program on a processor.
  • any memory element capable of storing data may have another configuration such as a flip flop.
  • a part of the memory area of the processor or a part of the cache memory may be used.
  • the size of the processing unit (second processing unit) consisting of luminance Y, color difference Cb and color difference Cr used in the reordering unit 601 is 32 ⁇ 32 pixels (a total of 1,536 pixels of luminance Y, color difference Cb and color difference Cr).
  • the size is not limited to the above, and may be smaller or larger.
  • the size may be 16 ⁇ 16 pixels (total of 384 pixels of luminance Y, color difference Cb and color difference Cr).
  • the processing unit (first processing unit or CU) before replacement consisting of luminance Y, color difference Cb and color difference Cr contained in the encoded stream is luminance Y (32 ⁇ 32 pixels), color difference Cb (16 ⁇ 16 pixels) and color difference
  • the reordering unit 601 may change the order of the plurality of pieces of coefficient information of the encoded stream in the order according to 16 ⁇ 16 pixel units.
  • the order rearrangement part 601 was arrange
  • the order change is performed at the time of reading from the memory
  • the present invention is not limited to this.
  • the order of the coefficient information may be changed at the time of writing to the memory, and then read at the time of reading.
  • FIG. 12 is a flow chart showing the order of writing a plurality of pieces of coefficient information to the memory.
  • FIG. 13 is a diagram showing the order in which a plurality of pieces of coefficient information are written to the memory and the order in which they are read out.
  • the reordering unit 601 when the reordering unit 601 receives a plurality of pieces of coefficient information from the variable-length decoding unit 504, it writes the luminance Y0 to the Y0 area of the memory (S301) and writes the luminance Y1 to the Y1 area of the memory (S101) S302) The luminance Y2 is written to the Y2 area of the memory (S303), and the luminance Y3 is written to the Y3 area of the memory (S304).
  • the order change unit 601 writes the color difference Cb0 to the Cb0 area of the memory (S305), writes the color difference Cb1 to the Cb1 area of the memory (S306), writes the color difference Cb2 to the Cb2 area of the memory (S307), and the color difference Cb3 Write to the Cb3 area of the memory (S308).
  • the reordering unit 601 writes the color difference Cr0 to the memory Cr0 area (S309), writes the color difference Cr1 to the memory Cr1 area (S310), writes the color difference Cr2 to the memory Cr2 area (S311), and the color difference Cr3 Write to the Cr3 area of the memory (S312).
  • coefficient information is stored in each area of the memory 701 as shown in FIG.
  • the inverse quantization unit 602 reads the coefficient information as the arrangement of the plurality of pieces of coefficient information stored in each area of the memory 701, and performs inverse quantization on the coefficient information.
  • the reordering unit (order reordering unit 601) is configured to process the plurality of color components in an order different from the order of the plurality of color components output from the first processing unit (variable length decoding unit 504).
  • the second processing unit (inverse quantization unit 602) changes the order of the plurality of color components by sequentially writing each in the storage unit (memory 701), and the second processing unit (inverse quantization unit 602) changes the order of the plurality of color components stored in the storage unit. Each of the plurality of color components may be read out sequentially according to the order.
  • the order reordering unit 601 may be immediately after the variable length decoding unit 504, may be immediately after the dequantization unit 602, or may be immediately after the inverse frequency conversion unit 506. It may be immediately after the image reconstruction unit 603. As described above, the order changing unit 601 may be disposed in any one or a plurality of portions of the processing unit to which the coefficient information is passed.
  • the image processing apparatus according to the first embodiment is configured as an image decoding apparatus 513, and changes the order of a plurality of pieces of coefficient information after the processing by the variable length decoding unit 504 shown in FIG.
  • the image processing apparatus according to the present embodiment performs rearrangement of the order of the plurality of pieces of coefficient information included in the input coded stream before decoding of the CU, and as a result, the rearranged coding generated Decoding processing including decoding of CU is performed on the stream.
  • FIG. 14 is a block diagram showing the configuration of the image processing apparatus according to the present embodiment.
  • the image processing apparatus in the present embodiment includes a bit stream buffer 604, a stream conversion unit 605, and an image decoding apparatus 513a.
  • the bitstream buffer 604 is a memory for holding an encoded stream.
  • the stream conversion unit 605 reads out the encoded stream from the bit stream buffer 604, and generates a transcoded stream by rearranging the order of a plurality of pieces of coefficient information included in the encoded stream. Then, the stream conversion unit 605 outputs the transcoded encoded stream to the bit stream buffer 502 of the image decoding device 513a.
  • the image decoding apparatus 513 includes all the constituent elements of the image decoding apparatus 513 according to the first embodiment except for the transversal dequantization unit 505, and dequantizes instead of the transversal dequantization unit 505.
  • a unit 602 is provided.
  • the same components as those in the first embodiment will be assigned the same reference numerals and detailed explanations thereof will be omitted.
  • FIG. 15 is a block diagram showing the configuration of the stream conversion unit 605. As shown in FIG.
  • the stream conversion unit 605 includes a variable length decoding unit 606, a memory 708, an order reordering unit 601, and a variable length coding unit 607.
  • FIG. 16 is a flowchart showing the processing operation of the stream conversion unit 605.
  • FIG. 10 an example will be described in which the order of a plurality of pieces of coefficient information is switched.
  • the variable length decoding unit 606 reads the encoded stream from the bit stream buffer 604, and performs variable length decoding on the encoded stream (S401). Then, the variable length decoding unit 606 stores the variable length decoded encoded stream in the memory 708 as a variable length decoded stream.
  • the reordering unit 601 reads the variable length decoded stream from the memory 708, and determines whether it is necessary to reorder the coefficient information for the variable length decoded stream (S402). That is, when the image data of 64x64 pixels included in the variable-length decoded stream is composed of a CU of 64x64 pixels and four TUs of 32x32 pixels, the reordering unit 601 determines that the reordering is necessary. .
  • the order changing unit 601 changes the order of the plurality of pieces of coefficient information according to the flow shown in FIG. 11 (S403).
  • the order replacement unit 601 generates a replaced variable-length decoded stream by this replacement and outputs the stream to the variable-length coding unit 607.
  • the variable-length coding unit 607 performs variable-length coding on the replaced variable-length decoded stream (S404).
  • the variable-length decoding unit 606 determines whether the image data is image data at the end of the encoded stream (S405), and if it is determined not to be the end of the encoded stream (No at S405), repeats the process of S401. Do.
  • the stream conversion unit 605 By repeatedly executing the processes of S401 to S405, the stream conversion unit 605 generates the above-described replaced encoded stream, and outputs the stream to the bit stream buffer 502 of the image decoding device 513a. Note that among the information included in the variable length decoding stream, the order reordering unit 601 does not reorder the information for information other than the coefficient information, that is, the above-mentioned coding information, and the coding information is exchanged. Output while being included in the long decoding stream.
  • FIG. 17 is a block diagram showing the configuration of the image decoding device 513a from another viewpoint. That is, the image decoding device 513a includes a variable length decoding unit 504, an inverse quantization unit 602, an inverse frequency conversion unit 506, an image reconstruction unit 603, a deblock filter unit 512, and four memories 702 to 704 and 709.
  • the image decoding device 513a includes a memory 709 instead of the memory 701 of the image decoding device 513 of the first embodiment.
  • the memory 709 stores data output from the variable-length decoding unit 504.
  • the coded stream input to the image decoding device 513a is one in which the order of the coefficient information is switched. Therefore, in the image decoding device 513a, as shown in FIG. 17, it is possible to reduce the capacity of the memories 702 to 704 and 709 required between the processing units.
  • variable-length coding unit 607 may variable-length code the transposed variable-length decoded stream by a coding scheme different from the original coding scheme.
  • the original variable length coding coding scheme that is, the coding scheme of the coding stream is CABAC (Context-based Adaptive Binary Arithmetic Coding) shown in Non-Patent Document 1 or Non-Patent Document 2.
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • CAVLC Context Adaptive Variable Length Coding
  • variable-length coding unit 607 in the stream conversion unit 605 adopts the easy-to-process coding method (CAVLC) as the coding method for the replaced variable-length decoded stream, thereby making the variable length of the image decoding device 513a. It becomes possible to reduce the processing load of decryption.
  • CAVLC easy-to-process coding method
  • the stream conversion unit 605 performs variable-length decoding and encoding of the encoded stream encoded according to the complex CABAC system at high speed, and the data of the transposed encoded stream is sufficiently bit
  • the stream buffer 502 is stored.
  • the image decoding device 513 performs reduced processing of the process. This makes it easy to guarantee the performance.
  • the image decoding device 513a is the image decoding device 513 in the first embodiment from which the reordering unit 601 is removed, and pipeline processing similar to that of the conventional one is performed, so the description of the processing operation is omitted here. .
  • the first processing unit is, for example, the variable length decoding unit 606, the rearrangement unit is, for example, the order rearrangement unit 601, and the second processing unit is, for example, the variable length coding unit 607. . That is, in the present embodiment, the first processing unit performs variable length decoding as the first process, sequentially outputs color components as at least one component included in the first processing unit, and the switching unit The order of the plurality of color components output from the first processing unit is switched. Then, the second processing unit performs variable-length coding as the process included in the second process.
  • the stream conversion unit 605 in this embodiment may be referred to as an image processing apparatus according to an aspect of the present invention.
  • the image processing apparatus further includes a third processing unit that decodes the encoded stream by performing the third process on the stream generated by the second process.
  • the third processing unit is, for example, an image decoding device 513a.
  • the capacity of the memories 702 to 704 of the image decoding device 513a is reduced by changing the order of coefficient information using a memory after variable length decoding.
  • a coded stream generated using a complex variable length coding coding method such as CABAC
  • the image decoding apparatus performs decoding according to CABAC on the coded stream, decoding Processing time may be increased and the performance of the image decoding apparatus may be degraded.
  • the order of the coefficient information is changed based on the state of the encoded stream (variable-length decoded stream) before being input to the image decoding device 513a, and the encoded stream is more variable.
  • variable-length code any coding method may be used, such as a Huffman code, a run-length code, an arithmetic code, or a fixed-length code.
  • each processing unit may be realized partially or entirely by a circuit using dedicated hardware, or may be realized by a program on a processor.
  • any memory element capable of storing data may have another configuration such as a flip flop. I don't care. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used.
  • the size of the processing unit (second processing unit) consisting of luminance Y, color difference Cb and color difference Cr used in the reordering unit 601 is 32 ⁇ 32 pixels (a total of 1,536 pixels of luminance Y, color difference Cb and color difference Cr).
  • the size is not limited to the above, and may be smaller or larger.
  • the size may be 16 ⁇ 16 pixels (total of 384 pixels of luminance Y, color difference Cb and color difference Cr).
  • the processing unit (first processing unit or CU) before replacement consisting of luminance Y, color difference Cb and color difference Cr contained in the encoded stream is luminance Y (32 ⁇ 32 pixels), color difference Cb (16 ⁇ 16 pixels) and color difference
  • the reordering unit 601 may change the order of the plurality of pieces of coefficient information of the encoded stream in the order according to 16 ⁇ 16 pixel units.
  • the order change is performed at the time of reading from the memory
  • the present invention is not limited to this.
  • the order of the coefficient information may be changed at the time of writing to the memory, and then read at the time of reading.
  • the image processing apparatus according to the second embodiment performs replacement of a plurality of pieces of coefficient information included in the input coded stream before decoding of the CU, and the result of the replacement coded stream generated as a result is the CU.
  • Decoding processing including decoding is performed.
  • the image processing apparatus according to the second embodiment sequentially performs variable-length coding on each of the plurality of pieces of coefficient information in the replaced order when generating the replaced encoded stream.
  • variable-length coding is performed in parallel for each of the plurality of pieces of coefficient information.
  • FIG. 18 is a block diagram showing the configuration of the image processing apparatus according to the present embodiment.
  • the image processing apparatus according to this embodiment includes a bit stream buffer 604, a stream conversion unit 608, and an image decoding apparatus 513a.
  • the same components as those in Embodiment 1 or 2 are assigned the same reference numerals and detailed explanations thereof will be omitted.
  • the image processing apparatus includes all components except the stream conversion unit 605 among the components included in the image processing apparatus according to the second embodiment, and in place of the stream conversion unit 605
  • the stream converter 608 is provided. Similar to the stream conversion unit 605, the stream conversion unit 608 reads out the coded stream from the bit stream buffer 604, and changes the order of a plurality of pieces of coefficient information included in the coded stream to obtain a transposed coded stream. Generate Then, the stream conversion unit 608 outputs the transcoded encoded stream to the bit stream buffer 502 of the image decoding device 513a.
  • FIG. 19 is a block diagram showing the configuration of the stream conversion unit 608 in this embodiment.
  • the stream conversion unit 608, as shown in FIG. 19, includes a variable-length decoding unit 606, a division unit 609, a luminance Y memory 710, a chrominance Cb memory 711, a chrominance Cr memory 712, and a coding information memory.
  • the variable-length decoding unit 606 performs variable-length decoding on the input encoded stream.
  • the dividing unit 609 converts the variable-length decoded stream generated by the variable-length decoding into the coefficient information of luminance Y, the coefficient information of chrominance Cb, the coefficient information of chrominance Cr, and other coding information.
  • the other coding information is CU type, intra prediction mode, motion vector information, or quantization parameter.
  • FIG. 20 is a flowchart showing the processing operation of the division unit 609.
  • the dividing unit 609 acquires decoded data which is a part of information of the variable length decoded stream (S501).
  • the division unit 609 determines whether the decoded data is coefficient information (S502).
  • the division unit 609 performs coding information processing described later (S503).
  • the dividing unit 609 further determines whether the coefficient information is coefficient information of luminance Y (S505).
  • the dividing unit 609 determines that it is coefficient information of luminance Y (Yes in S505), it outputs decoded data which is coefficient information of the luminance Y to the memory Y for luminance Y (S508).
  • the division unit 609 determines whether the coefficient information is coefficient information of chrominance Cb (S506).
  • the dividing unit 609 determines that it is coefficient information of the color difference Cb (Yes in S506), it outputs decoded data that is coefficient information of the color difference Cb to the color difference Cb memory 711 (S509).
  • the coefficient information is coefficient information of color difference Cr, so decoding for color difference Cr memory information in memory 712 for color difference Cr
  • the completed data is output (S507).
  • the division unit 609 determines whether the decoded data acquired in S501 is data at the end of the variable length decoding stream (S504). Then, if it is determined that the data is not the terminal data (No in S504), or the processing in any of S507 to S509 is performed, the division unit 609 executes the processing in S501 again. That is, the dividing unit 609 acquires the next decoded data from the variable length decoded stream, and executes the processing of S502 to S509 on the decoded data.
  • FIG. 21 is a flowchart showing coded information processing (S 503) by the dividing unit 609.
  • the coding information is classified into information necessary for encoding at least one of luminance Y, chrominance Cb and chrominance Cr, and information necessary for decoding after dequantization. Therefore, the dividing unit 609 first determines whether the above-mentioned decoded data is coding information necessary for coding all of the luminance Y, the color difference Cb and the color difference Cr (S601).
  • division section 609 determines that the luminance Y, chrominance Cb and chrominance Cr are all encoding information necessary for encoding (Yes at S601), luminance Y memory 710 and chrominance Cb memory 711 The decoded data which is the encoded information is output to the chrominance Cr memory 712 (S 605).
  • division section 609 determines that the luminance Y, chrominance Cb and chrominance Cr are not all encoding information necessary for encoding (No in S601)
  • the above-mentioned decoded data is also encoded for luminance Y It is determined whether or not the coding information is necessary only for (S602).
  • division section 609 determines that it is the encoded information necessary only for the encoding of luminance Y (Yes in S602), it outputs the decoded data that is the encoded information to luminance Y memory 710. (S606).
  • the dividing unit 609 determines that the encoding information is not necessary only for encoding the luminance Y (No in S602), the above-described decoded data is only necessary for encoding the chrominance Cb and the chrominance Cr. It is determined whether it is coding information (S603).
  • the dividing unit 609 determines that the coding information is necessary only for coding the color difference Cb and the color difference Cr (Yes in S603), the color difference Cb memory 711 and the color difference Cr memory 712 respectively have Decoded data which is encoding information is output (S 607).
  • the dividing unit 609 determines that the encoding information is not necessary only for the encoding of the chrominance Cb and the chrominance Cr (No in S603), that is, the information necessary for the decoding of the encoding information after the inverse quantization. If so, the decoded data which is the encoded information is output to the encoding information memory 713 (S604).
  • the plurality of decoded data output from dividing section 609 is at least one of luminance Y memory 710, chrominance Cb memory 711, chrominance Cr memory 712, and encoding information memory 713. Each is distributed to one memory. In the subsequent processing, variable-length coding is performed using the information on each memory.
  • the luminance Y variable-length coding unit 611 reads the decoded data from the luminance Y memory 710 and performs variable-length coding on the decoded data to generate a luminance Y stream.
  • the luminance Y variable length coding unit 611 outputs the luminance Y stream to the luminance Y stream memory 714.
  • the chrominance Cb variable-length coding unit 612 reads the decoded data from the chrominance Cb memory 711 and performs variable-length coding on the decoded data to generate a chrominance Cb stream.
  • the chrominance Cb variable-length coding unit 612 outputs the chrominance Cb stream to the chrominance Cb stream memory 715.
  • the chrominance Cr variable-length coding unit 613 reads the decoded data from the chrominance Cr memory 712 and performs variable-length coding on the decoded data to generate a chrominance Cr stream.
  • the chrominance Cr variable length coding unit 613 outputs the chrominance Cr stream to the chrominance Cr stream memory 716.
  • the coding information variable-length coding unit 614 reads the decoded data from the coding information memory 713, and generates a coding information stream by performing variable-length coding on the decoded data. .
  • the coding information variable-length coding unit 614 outputs the coding information stream to the coding information stream memory 717.
  • variable-length coding can be operated independently. That is, the stream conversion unit 608 in the present embodiment can perform variable-length coding, which has been sequentially performed in the second embodiment, in parallel.
  • FIG. 22 is a timing chart for explaining parallel processing of variable-length coding.
  • This timing chart shows the operation after the luminance Y, the chrominance Cb and the chrominance Cr, and the encoding information necessary for the encoding thereof are stored in the respective memories.
  • the stream conversion unit 605 of the second embodiment sequentially executes variable-length coding on each piece of coefficient information. That is, in order to sequentially execute variable-length coding, the variable-length coding unit 607 of the stream conversion unit 605 sequentially reads out the luminance Y, the color difference Cb, and the color difference Cr from the memory 708 and performs variable-length coding.
  • the variable-length coding unit 607 of the stream conversion unit 605 sequentially reads out the luminance Y, the color difference Cb, and the color difference Cr from the memory 708 and performs variable-length coding.
  • the variable-length coding unit 607 of the stream conversion unit 605 sequentially reads out the luminance Y, the color difference Cb, and
  • the stream conversion unit 608 in the present embodiment executes variable-length coding on each piece of coefficient information in parallel. That is, in the present embodiment, the variable length coding unit 611 for luminance Y, the variable length coding unit 612 for chrominance Cb, and the variable length coding unit 613 for chrominance Cr are independently subjected to variable length coding. Thus, parallel processing of variable length coding is realized. As a result, in the present embodiment, as shown by (a) and (b) in FIG. 22, the overall processing time of variable-length coding is compared with the sequential processing in the second embodiment. It can be greatly reduced.
  • the stream reconstruction unit 610 respectively stores a luminance Y stream, a chrominance Cb stream, a chrominance Cr stream, and a coded information stream as a luminance Y stream memory 714, a chrominance Cb stream memory 715, a chrominance Cr stream memory 716, and a code. It is taken out from the memory for converting information stream 717.
  • the luminance Y stream is composed of a plurality of coefficient information of variable length coded luminance Y
  • the chrominance Cb stream is composed of a plurality of coefficient information of chrominance Cb subjected to variable length coding
  • the chrominance Cr stream is variable It comprises a plurality of pieces of coefficient information of the long coded chrominance Cr.
  • the coded information stream is composed of a plurality of variable length coded coded information.
  • the stream reconstruction unit 610 when extracting each stream from each memory, sequentially selects and extracts information (coefficient information or coding information) included in each stream. Then, the stream reconstruction unit 610 links the extracted encoded information stream by linking the extracted coefficient information or encoded information to the coefficient information or encoded information extracted immediately before that whenever information is extracted. Generate At this time, the stream reconstruction unit 610 is configured so that the position of the coded information in the transcoded stream is the same as the position in the original coded stream, that is, in the order of the original coded stream. To extract the encoded information. Also, the stream reconstruction unit 610 extracts the coefficient information included in each of the above-mentioned streams in accordance with the flow shown in FIG. By performing such extraction, the above-described transcoded encoded stream is generated.
  • the first processing unit is, for example, a variable-length decoding unit 606.
  • the replacing unit is a component group other than the variable length decoding unit 606 in the stream conversion unit 608, that is, the dividing unit 609, each variable length encoding unit 611 to 614, each memory 710 to 717, and the stream The reconstruction unit 610 is included.
  • the second processing unit is, for example, an image decoding device 513a.
  • the first processing unit performs variable length decoding as the first processing, and sequentially outputs color components as at least one component included in the first processing unit.
  • the interchanging unit includes a dividing unit 609, a variable length coding unit, and a stream reconstruction unit 610.
  • the dividing unit 609 classifies each of the plurality of color components output from the first processing unit according to the type of color component.
  • the variable-length coding unit includes, for example, the above-described variable-length coding units 611 to 614, performs variable-length coding on a plurality of color components belonging to the type for each type of color component. Store the generated stream in the storage unit.
  • the storage unit is, for example, each of the memories 714 to 717 described above.
  • the stream reconstruction unit 610 is configured to store a plurality of streams, which are generated for each color component type stored in the storage unit, in an order different from the order of the plurality of color components output from the first processing unit. Sequentially reading each of the color components produces a permuted encoded stream in which the order of the plurality of color components is permuted.
  • the variable-length coding unit described above performs variable-length coding in parallel for each type of color component.
  • the transcoded encoded stream includes an encoding unit of the same size as the size of the second processing unit.
  • the order of the coefficient information included in the encoded stream before being input to the image decoding device 513a is changed, and further, the encoding which is easier to decode than the original encoding method.
  • Generate a transcoded stream with variable length coding of the scheme Thereby, it is possible to reduce the capacity of the memory of the image decoding device 513a at the same time as enabling the high performance of the image decoding device 513a.
  • variable-length coding is performed in parallel, it is possible to shorten the processing time required to generate a transcoded stream.
  • variable-length code any coding method may be used, such as a Huffman code, a run-length code, an arithmetic code, or a fixed-length code.
  • each processing unit may be realized partially or entirely by a circuit using dedicated hardware, or may be realized by a program on a processor.
  • the memory 716 and the encoded information stream memory 717 are memories, as long as they are storage elements capable of storing data, they may have other configurations such as flip-flops. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used.
  • the size of the processing unit (second processing unit) consisting of luminance Y, color difference Cb and color difference Cr used in the stream conversion unit 608 is 32 ⁇ 32 pixels (a total of 1,536 pixels of luminance Y, color difference Cb and color difference Cr)
  • the size is not limited to the above, and may be smaller or larger.
  • the size may be 16 ⁇ 16 pixels (total of 384 pixels of luminance Y, color difference Cb and color difference Cr).
  • the processing unit (first processing unit or CU) before replacement consisting of luminance Y, color difference Cb and color difference Cr contained in the encoded stream is luminance Y (32 ⁇ 32 pixels), color difference Cb (16 ⁇ 16 pixels) and color difference
  • the stream conversion unit 608 may replace the order of the plurality of pieces of coefficient information of the encoded stream in the order according to 16 ⁇ 16 pixel units.
  • processing in division section 609 is not limited to the processing shown by FIG. 20 and FIG.
  • dividing section 609 selects each of the plurality of decoded data as one of luminance Y memory 710, chrominance Cb memory 711, chrominance Cr memory 712, and encoding information memory 713.
  • luminance Y memory 710 chrominance Cb memory 711
  • chrominance Cr memory 712 chrominance Cr memory 712
  • encoding information memory 713 encoding information memory 713.
  • variable length codings two for variable length coding for luminance Y, variable length coding for chrominance Cb, and variable length coding for chrominance Cr
  • variable length coding may be performed in parallel.
  • the stream conversion unit 608 includes one common memory having the functions of these memories instead of the color difference Cb memory 711 and the color difference Cr memory 613.
  • division section 609 stores the coefficient information of each of chrominance Cb and chrominance Cr among the plurality of pieces of decoded data in one common memory.
  • the coding information is classified into information necessary for encoding at least one of luminance Y, color difference Cb and color difference Cr, and information necessary for decoding after inverse quantization
  • the memory for luminance Y 710, the memory for color difference Cb 711, and the memory for color difference Cr 712 are output to the memory according to the classification result.
  • the encoded information may be output to all of the luminance Y memory 710, the chrominance Cb memory 711 and the chrominance Cr memory 712 without classification.
  • each variable-length coding unit 611 to 613 may select necessary coding information from the memory and use it for variable-length coding.
  • a plurality of decoded data are represented by luminance Y, color difference Cb, and the like (Embodiment 4).
  • dividing section 609 divides the variable length decoded stream into luminance Y, color difference Cb, color difference Cr and coding information, and stores the decoded data in each memory.
  • markers for identifying the luminance Y, the chrominance Cb, the chrominance Cr, and the encoding information are added (inserted) to the variable-length decoded stream without division. This makes it possible to easily share the memory.
  • FIG. 23 is a block diagram showing the configuration of the image processing apparatus according to the present embodiment.
  • the image processing apparatus according to this embodiment includes a bit stream buffer 604, a stream conversion unit 615, and an image decoding apparatus 513a.
  • the same components as those in Embodiments 1, 2 or 3 are assigned the same reference numerals and detailed explanations thereof will be omitted.
  • the image processing apparatus includes all components except the stream conversion unit 608 among the components included in the image processing apparatus according to the third embodiment.
  • the stream converter 615 of FIG. Similar to the stream conversion unit 608, the stream conversion unit 615 reads out the coded stream from the bit stream buffer 604, and changes the order of a plurality of pieces of coefficient information included in the coded stream to obtain a transposed coded stream. Generate Then, the stream conversion unit 615 outputs the transcoded encoded stream to the bit stream buffer 502 of the image decoding device 513a.
  • FIG. 24 is a block diagram showing a configuration of the stream conversion unit 615 in the present embodiment.
  • the stream conversion unit 615 is a variable length decoding unit 606, a marker insertion unit 616, a marker inserted stream memory 722, a luminance Y variable length encoding unit 617, and a variable length code for chrominance Cb.
  • the variable-length decoding unit 606 performs variable-length decoding on the input encoded stream.
  • the marker insertion unit 616 adds the coefficient information of luminance Y, the coefficient information of chrominance Cb, the coefficient information of chrominance Cr, and other encoding information from the variable length decoded stream generated by the variable length decoding. And insert markers for each.
  • FIG. 25 is a flowchart showing the processing operation of the marker insertion unit 616.
  • the marker insertion unit 616 acquires decoded data which is a part of information of the variable length decoded stream (S701).
  • the marker insertion unit 616 determines whether the decoded data is coefficient information (S702).
  • the marker insertion unit 616 determines that it is not coefficient information (No in S702), since the decoded data is coding information, the coding information may be encoded immediately before the coding information in the variable length decoding stream.
  • a marker is inserted (S705).
  • the marker insertion unit 616 executes coefficient information marker insertion processing described later (S703).
  • the marker insertion unit 616 determines whether the decoded data acquired in S701 is data at the end of the variable length decoded stream (S704). When the marker insertion unit 616 determines that the data is not the end data (No in S704), the marker insertion unit 616 executes the process of S701 again. That is, the marker insertion unit 616 obtains the next decoded data from the variable length decoded stream, and executes the processing of S702 to S705 on the decoded data.
  • FIG. 26 is a flowchart showing coefficient information marker insertion processing (S703) by the marker insertion unit 616.
  • the plural pieces of coefficient information are luminance Y0, luminance Y1, luminance Y2, luminance Y3, color difference Cb0, color difference Cb1, color difference Cb2
  • the color difference Cb3, the color difference Cr0, the color difference Cr1, the color difference Cr2, and the color difference Cr3 are arranged in this order.
  • the marker insertion unit 616 first reads the coefficient information of the luminance Y0 from the variable length decoded stream, and inserts a marker indicating the luminance Y0 immediately before the coefficient information in the variable length decoded stream (S801). Next, the marker insertion unit 616 reads the coefficient information of the luminance Y1 from the variable length decoded stream, and inserts a marker indicating the luminance Y1 immediately before the coefficient information in the variable length decoded stream (S802). In the same manner, identifiable markers are sequentially inserted into each piece of coefficient information (S 803 to S 812).
  • FIG. 27 is a diagram for describing insertion of a marker into a variable length decoded stream.
  • the marker insertion unit 616 performs the above-described processing operation on the variable-length decoded stream shown in (a) of FIG. 27, and as a result, the variable-length decoded stream shown in (b) of FIG. Generate a certain marker inserted stream.
  • this marker inserted stream a marker for identifying the coefficient information is inserted immediately before the coefficient information for each coefficient information. Then, the marker insertion unit 616 stores the marker inserted stream in the marker inserted stream memory 722.
  • the luminance Y variable length coding unit 617 extracts the decoded data necessary for the luminance Y encoding from the marker inserted stream according to the marker, and performs variable length coding on the decoded data. .
  • the luminance Y variable length coding unit 617 generates a luminance Y stream by repeating such variable length coding, and outputs the luminance Y stream to the luminance Y stream memory 718.
  • the chrominance Cb variable-length coding unit 618 extracts decoded data necessary for coding the chrominance Cb from the marker-inserted stream according to the marker, and performs variable-length coding on the decoded data.
  • the chrominance Cb variable-length coding unit 618 generates a chrominance Cb stream by repeating such variable length coding, and outputs the chrominance Cb stream to the chrominance Cb stream memory 719.
  • the color difference Cr variable length coding unit 619 extracts decoded data necessary for coding the color difference Cr from the marker inserted stream according to the marker, and performs variable length coding on the decoded data. .
  • the chrominance Cr variable-length coding unit 619 generates a chrominance Cr stream by repeating such variable length coding, and outputs the chrominance Cr stream to the chrominance Cr stream memory 720.
  • variable length coding unit for coding information 620 extracts decoded data necessary for coding the coding information from the marker inserted stream according to the marker, and performs variable length coding on the decoded data. Do.
  • the coding information variable-length coding unit 620 generates a coding information stream by repeating such variable-length coding, and outputs the coding information stream to the coding information stream memory 721.
  • variable-length coding can be performed independently, as in the third embodiment. However, in the present embodiment, a marker is left for each stream (brightness Y stream, color difference Cb stream, color difference Cr stream, and coded information stream).
  • the stream reconstruction unit 621 selects the luminance Y stream, the chrominance Cb stream, the chrominance Cr stream, and the encoded information stream based on the markers, respectively, for the luminance Y stream memory 718, the chrominance Cb stream memory 719, and the chrominance It is extracted from the Cr stream memory 720 and the encoded information stream memory 721.
  • the luminance Y stream is composed of a plurality of coefficient information of the variable length coded luminance Y and markers for them
  • the chrominance Cb stream is a plurality of coefficient information of the chrominance Cb for variable length coded and markers for them
  • the color difference Cr stream is composed of a plurality of pieces of coefficient information of variable length coded color difference Cr and markers for them.
  • the coded information stream consists of a plurality of variable length coded coded information and markers for them.
  • the stream reconstruction unit 621 when the stream reconstruction unit 621 takes out each stream from each memory, the information (coefficient information or coding information) included in each stream is based on the marker inserted into the information. Select each one sequentially and take it out. Then, every time information is extracted, the stream reconstruction unit 621 links the extracted coefficient information or encoding information to the coefficient information or encoding information extracted immediately before it, thereby replacing the transcoded encoded stream. Generate At this time, the stream reconstruction unit 621 is configured such that the position of the encoded information in the transcoded stream is the same as the position in the original encoded stream, that is, in the order of the original encoded stream. To extract the encoded information.
  • the stream reconstruction unit 621 extracts the coefficient information included in each of the above-described streams in accordance with the flow illustrated in FIG. By performing such extraction, the above-described transcoded encoded stream is generated. In this embodiment, the marker is removed at this time.
  • the first processing unit is, for example, a variable-length decoding unit 606.
  • the replacing unit is a group of components other than the variable length decoding unit 606 in the stream conversion unit 615, that is, the marker insertion unit 616, the respective variable length coding units 617 to 620, the respective memories 718 to 722, and It consists of a stream reconstruction unit 621.
  • the second processing unit is, for example, an image decoding device 513a.
  • the first processing unit performs variable length decoding as the first processing, and sequentially outputs color components as at least one component included in the first processing unit.
  • the interchanging unit includes a marker insertion unit 616, a variable length coding unit, and a stream reconstruction unit 621.
  • the marker insertion unit 616 adds a marker for identifying the type of the color component to each of the plurality of color components output from the first processing unit.
  • the variable-length coding unit comprises, for example, the variable-length coding units 617 to 620 described above, and based on the marker added by the marker insertion unit 616, each of the plurality of color components output from the first processing unit.
  • variable length coding is performed on a plurality of color components belonging to the type, and a stream generated by variable length coding is stored in the storage unit.
  • the storage unit is, for example, each of the memories 718 to 721.
  • the stream reconstruction unit 621 is configured to store the plurality of color components in the order different from the order of the plurality of color components output from the first processing unit from the stream generated for each color component type stored in the storage unit. Sequentially reading out the color components produces a transposed encoded stream in which the order of the plurality of color components is permuted.
  • the variable-length coding unit described above performs variable-length coding in parallel for each type of color component.
  • the order of coefficient information included in the coded stream before being input to the image decoding device 513a is changed, and further, coding that is easier to decode than the original coding method Generate a transcoded stream with variable length coding of the scheme. Thereby, it is possible to reduce the capacity of the memory of the image decoding device 513a at the same time as enabling the high performance of the image decoding device 513a. Further, in the present embodiment, as in the third embodiment, since variable length coding is performed in parallel, it is possible to shorten the processing time required to generate a transcoded stream.
  • inserting a marker for identifying the luminance Y, the color difference Cb, the color difference Cr, and the coding information makes it possible to store them as a series of data in the memory.
  • memory resources can be shared. This simplifies memory management and control as compared to storing luminance Y, color difference Cb, color difference Cr, and coding information separately in the memory, and provides performance in parallel processing of variable-length coding. It is possible to improve the As a result, the processing time required to generate a transcoded stream can be further reduced, the performance of the image processing apparatus can be improved, and the memory capacity of the image processing apparatus can be reduced.
  • variable-length code any coding method may be used, such as a Huffman code, a run-length code, an arithmetic code, or a fixed-length code.
  • each processing unit may be realized partially or entirely by a circuit using dedicated hardware, or may be realized by a program on a processor.
  • the frame memory 503, the luminance Y stream memory 718, the chrominance Cb stream memory 719, the chrominance Cr stream memory 720, the encoded information stream memory 721, and the marker inserted stream memory 722 are memories, but the data As long as it is a storage element capable of storing data, it may be of another configuration such as a flip flop. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used.
  • the size of the processing unit (second processing unit) consisting of luminance Y, color difference Cb and color difference Cr used in the stream conversion unit 615 is 32 ⁇ 32 pixels (a total of 1,536 pixels of luminance Y, color difference Cb and color difference Cr)
  • the size is not limited to the above, and may be smaller or larger.
  • the size may be 16 ⁇ 16 pixels (total of 384 pixels of luminance Y, color difference Cb and color difference Cr).
  • the processing unit (first processing unit or CU) before replacement consisting of luminance Y, color difference Cb and color difference Cr contained in the encoded stream is luminance Y (32 ⁇ 32 pixels), color difference Cb (16 ⁇ 16 pixels) and color difference
  • the stream conversion unit 615 may replace the order of the plurality of pieces of coefficient information of the encoded stream in the order according to 16 ⁇ 16 pixel units.
  • processing in the marker insertion unit 616 is not limited to the processing shown by FIG. 25 and FIG.
  • the coding information is classified into information necessary for coding at least one of luminance Y, color difference Cb, and color difference Cr, and information necessary for decoding after inverse quantization, and markers are inserted. It is also good.
  • each marker described above may be any value that can identify the respective information, and may be a numerical value sequence not used in the standard, or a value indicating the bit width of the information.
  • variable length codings two for variable length coding for luminance Y, variable length coding for chrominance Cb, and variable length coding for chrominance Cr
  • Variable length coding may be performed in parallel.
  • the marker insertion unit 616 may insert a common marker into coefficient information (decoded data) of each of the color difference Cb and the color difference Cr among the plurality of pieces of decoded data.
  • variable-length coding units operate in parallel in accordance with the markers inserted by the marker insertion unit 616. Then, the marker is deleted by the stream reconstruction unit 621, and the image decoding device 513a sequentially executes the decoding process on the replaced encoded stream in which the marker is not inserted. On the other hand, in the present embodiment, the marker is not removed by the stream reconstruction unit, and the image decoding apparatus performs the decoding process in parallel on the replaced encoded stream into which the marker has been inserted.
  • FIG. 28 is a block diagram showing the configuration of the image processing apparatus according to the present embodiment.
  • the image processing apparatus according to the present embodiment includes a bit stream buffer 604 and a stream conversion unit 622 that inserts a marker for identifying luminance Y, color difference Cb, color difference Cr, and coding information into the input coded stream. , And an image decoding apparatus 650.
  • the same components as those in Embodiments 1 to 4 are assigned the same reference numerals and detailed explanations thereof will be omitted.
  • FIG. 29 is a block diagram showing a configuration of the stream conversion unit 622 in the present embodiment.
  • the stream conversion unit 622 is a variable length decoding unit 606, a marker insertion unit 616, a marker inserted stream memory 722, a luminance Y variable length encoding unit 617, and a variable length code for chrominance Cb.
  • the stream conversion unit 622 includes all the constituent elements of the stream conversion unit 615 of the fourth embodiment except the stream reconstruction unit 621, and the stream reconstruction unit 621 is included.
  • This stream reconstruction unit 623 takes out information (coefficient information or coding information) from each of the memories 718 to 721 like the stream reconstruction unit 621 but takes out not only the information but also the marker corresponding to the information. Then, the stream reconstruction unit 623 generates, for example, a marker inserted coded stream including a plurality of markers and a plurality of information as illustrated in (b) of FIG.
  • the image decoding apparatus 650 includes a bitstream buffer 520, a variable length decoding unit 640, an inverse quantization unit 641, a motion vector calculation unit 642, a motion compensation unit 643, an inverse frequency conversion unit 644, and an intra prediction unit 645. , A control unit 501, a frame memory 503, a reconstruction unit 511, and a deblocking filter unit 512.
  • the bit stream buffer 520 holds the marker inserted coded stream output from the stream conversion unit 622.
  • the variable-length decoding unit 640 reads the marker-inserted encoded stream from the bit stream buffer 520, and performs variable-length decoding in parallel on the luminance Y, the chrominance Cb, and the chrominance Cr included in the marker-inserted encoded stream.
  • the inverse quantization unit 641 performs inverse quantization on the variable length decoding result (quantized value) of the luminance Y and the variable length decoding result of the chrominance Cb and the chrominance Cr in parallel.
  • the inverse frequency transform unit 644 performs inverse frequency transform in parallel on the inverse quantization result (frequency coefficient) of the luminance Y and the inverse quantization result of the chrominance Cb and the chrominance Cr.
  • the motion vector calculation unit 642 performs calculation of motion vectors for the luminance Y, the chrominance Cb, and the chrominance Cr included in the marker inserted coded stream in parallel.
  • the motion compensation unit 643 performs motion compensation on the luminance Y and the color differences Cb and Cr in parallel.
  • the intra prediction unit 645 sequentially performs intra prediction on the luminance Y and the chrominance Cb and chrominance Cr.
  • each of the variable-length decoding unit 640, the inverse quantization unit 641, the inverse frequency conversion unit 644, the motion vector calculation unit 642, and the motion compensation unit 643 has luminance Y. It differs from the image decoding device 513a of the second to fourth embodiments in that processing is performed in parallel on the color difference Cb and the color difference Cr.
  • FIG. 30 is a diagram showing configurations of a variable length decoding unit 640, an inverse quantization unit 641, an inverse frequency conversion unit 644, a motion vector calculation unit 642, and a motion compensation unit 643 in the image decoding device 650.
  • the variable length decoding unit 640 includes a luminance variable length decoding unit 624 and a color difference variable length decoding unit 625.
  • the inverse quantization unit 641 includes a luminance inverse quantization unit 626 and a color difference inverse quantization unit 627.
  • the inverse frequency transform unit 644 includes a luminance inverse frequency transform unit 628, a color difference inverse frequency transform unit 629, a luminance memory 727, a chrominance memory 728, and a coefficient reconstruction unit 630.
  • the motion vector calculation unit 642 includes a luminance motion vector calculation unit 631 and a color difference motion vector calculation unit 632.
  • the motion compensation unit 643 includes a luminance motion compensation unit 633, a color difference motion compensation unit 634, and a motion compensation reconstruction unit 635.
  • FIG. 31 is a diagram showing the configuration of the intra prediction unit 645 in the image decoding device 650.
  • the intra prediction unit 645 includes a luminance intra prediction unit 636, an intra prediction image memory 729, and a chrominance intra prediction unit 637, as shown in FIG.
  • the processing units are connected to one another via memories. That is, the variable-length decoding unit 640 and the inverse quantization unit 641 are connected via the luminance memory 723 and the chrominance memory 724. Furthermore, the inverse quantization unit 641 and the inverse frequency conversion unit 644 are connected via the luminance memory 725 and the color difference memory 726. Note that these memories 723 to 726 are provided in the image decoding device 650. There is.
  • the plural pieces of coefficient information are luminance Y0, luminance Y1, luminance Y2, luminance Y3, color difference Cb0, color difference Cb1, color difference Cb2
  • the color difference Cb3, the color difference Cr0, the color difference Cr1, the color difference Cr2, and the color difference Cr3 are arranged in this order.
  • the marker insertion unit 616 of the stream conversion unit 622 identifies the coefficient information of luminance Y, the coefficient information of chrominance Cb, the coefficient information of chrominance Cr, and other coding information. , Insert markers for each. Furthermore, the variable-length coding units 617 to 620 perform variable-length coding in parallel on each of the above-mentioned pieces of information. As a result, the streams generated by variable-length coding for the information are respectively the luminance Y stream memory 718, the chrominance Cb stream memory 719, the chrominance Cr stream memory 720, and the encoded information stream memory 721. Are output to the memory corresponding to that stream.
  • the stream reconstruction unit 623 determines, based on the markers, the luminance Y stream, the chrominance Cb stream, the chrominance Cr stream, and the encoded information stream, respectively, the luminance Y stream memory 718, the chrominance Cb stream memory 719, and the chrominance It is extracted from the Cr stream memory 720 and the encoded information stream memory 721. That is, when the stream reconstruction unit 623 takes out each stream from each memory, the information (coefficient information or coding information) included in each stream is based on the marker inserted into the information. Select each one sequentially and take it out.
  • the stream reconstruction unit 621 links the extracted coefficient information or encoding information to the coefficient information or encoding information extracted immediately before it, whereby the marker inserted encoded stream is inserted.
  • the stream reconstruction unit 623 makes the position of the coding information in the marker inserted coded stream the same as the position in the original coded stream, that is, in the original coded stream. Fetch encoding information in order.
  • the stream reconstruction unit 623 extracts the coefficient information included in each of the above-described streams in accordance with the flow illustrated in FIG. By performing such extraction, the above-described marker inserted coded stream is generated.
  • the stream reconstruction unit 623 when extracting the information (coefficient information or coding information), the stream reconstruction unit 623 according to the present embodiment also extracts the marker inserted in the information together with the information. That is, in the fourth embodiment, the marker is removed from the stream output from the stream reconstruction unit, but there is a marker in the present embodiment.
  • the plurality of markers and the plurality of coefficient information are the marker of luminance Y0, the marker of luminance Y0, the marker of chrominance Cb0, the marker of chrominance Cb0, the marker of chrominance Cr0, the marker of chrominance Cr0, luminance Y1.
  • the markers of Y3, color difference Cb3, color difference Cb3, marker of color difference Cr3, and color difference Cr3 are arranged in this order. Then, such a marker inserted coded stream is output to the bit stream buffer 520.
  • variable-length decoding unit 640 the inverse quantization unit 641, the inverse frequency conversion unit 644, the motion vector calculation unit 642, and the motion compensation unit 643 will be described using FIG.
  • the variable-length decoding unit 640, the inverse quantization unit 641, and the inverse frequency conversion unit 644 have processing units for luminance and chrominance, respectively.
  • Each of the luminance processing units performs variable-length decoding, inverse quantization, and inverse frequency conversion described in Embodiment 1 on the luminance, and each of the chrominance processing units corresponds to the first embodiment.
  • the processing unit for luminance and the processing unit for color difference execute processing in parallel.
  • variable-length decoding unit 640 the luminance variable-length decoding unit 624 performs variable-length encoding on the luminance coefficient information in the marker inserted coded stream, and the variable-length encoded coefficient information (Quantized value of luminance) is stored in the memory for luminance 723. Then, in parallel with the processing by the luminance variable length decoding unit 624, the chrominance variable length decoding unit 625 performs variable length coding on the chrominance coefficient information in the marker inserted coded stream, and the variable length coding is performed. The coefficient information (quantized value of color difference) is stored in the color difference memory 724.
  • the luminance inverse quantization unit 626 acquires coefficient information that is a quantization value of the luminance from the luminance memory 723 and inversely quantizes the coefficient information (frequency coefficient of luminance ) Is stored in the luminance memory 725. Then, in parallel with the processing by the luminance dequantization unit 626, the color difference dequantization unit 627 acquires the coefficient information which is the quantization value of the color difference from the color difference memory 724 and inversely quantizes it. The coefficient information (frequency coefficient of color difference) is stored in the color difference memory 726.
  • the luminance inverse frequency conversion unit 628 acquires coefficient information that is a frequency coefficient of luminance from the luminance memory 725, performs inverse frequency conversion, and performs inverse frequency conversion on the coefficient information (pixel value of luminance ) Is stored in the luminance memory 727. Then, in parallel with the processing by the luminance inverse frequency conversion unit 628, the chrominance inverse frequency conversion unit 629 acquires coefficient information that is the frequency coefficient of the chrominance from the chrominance memory 726, performs inverse frequency conversion, and performs inverse frequency conversion. The coefficient information (pixel value of color difference) is stored in the color difference memory 728.
  • the coefficient reconfiguring unit 630 extracts coefficient information which is a pixel value of luminance and chrominance from the luminance memory 727 and the chrominance memory 728 according to the flow of FIG. At this time, the coefficient reconstruction unit 630 removes the marker inserted by the stream conversion unit 622. Thus, the subsequent processing is executed in units shown in (b) of FIG.
  • the luminance motion vector calculation unit 631 calculates a motion vector for the coefficient information of luminance as in the first embodiment. Then, in parallel with the processing by the luminance motion vector calculation unit 631, the color difference motion vector calculation unit 632 calculates a motion vector for the color difference coefficient information as in the first embodiment.
  • the luminance motion compensation unit 633 performs motion compensation on luminance coefficient information as in the first embodiment.
  • the chrominance motion compensation unit 634 performs motion compensation on the chrominance coefficient information as in the first embodiment.
  • the motion compensation reconstruction unit 635 sequentially generates information (motion compensation information) generated by the motion compensation of the luminance motion compensation unit 633 and the color difference motion compensation unit 634 in the order corresponding to the order of the coefficient information shown in FIG. Reorder.
  • the luminance intra prediction unit 636 performs the intra prediction of the luminance image using the decoded image output from the reconstruction unit 511 and the parameters necessary for the intra prediction, and the intra prediction image which is the prediction result is an intra prediction image Output to the memory 729.
  • the chrominance intra prediction unit 637 refers to the luminance intra prediction image stored in the intra prediction image memory 729 to perform intra prediction of the chrominance image.
  • the first processing unit is, for example, a variable-length decoding unit 606.
  • the interchanging unit is a group of components other than the variable length decoding unit 606 in the stream conversion unit 622, that is, the marker insertion unit 616, each variable length encoding unit 617 to 620, each memory 718 to 722, and It consists of a stream reconstruction unit 623.
  • the second processing unit is, for example, an image decoding device 650.
  • the stream reconstruction unit 623 sequentially reads the plurality of color components together with the marker added to each of the plurality of color components, whereby the marker is generated for each of the plurality of color components. Generate an appended transcoded stream.
  • the image decoding apparatus 636 which is a second processing unit, includes a variable length decoding unit 640, an inverse quantization unit 641, an inverse frequency conversion unit, and a component reconstruction unit.
  • the variable-length decoding unit 640 performs variable-length decoding on a plurality of color components belonging to the type for each type of color component based on the plurality of markers included in the replaced encoded stream.
  • the inverse quantization unit 641 performs inverse quantization on a plurality of variable-length decoded color components belonging to each type of color component.
  • the inverse frequency conversion unit includes, for example, a luminance inverse frequency conversion unit 628 and a color difference inverse frequency conversion unit 629, and performs inverse frequency conversion on a plurality of inversely quantized color components belonging to the type for each color component type.
  • the component reconfiguring unit is, for example, the coefficient reconfiguring unit 630, identifies color component data generated for each type of color component based on a plurality of markers included in the color component data, and replaces them by the replacing unit.
  • variable-length decoding unit 640 the inverse quantization unit 641, and the inverse frequency conversion units 628 and 629 described above perform processing on the types of color components in parallel, respectively.
  • variable length in the stream conversion unit is based on encoding information, coefficient information of luminance Y, coefficient information of chrominance Cb, and markers for identifying coefficient information of chrominance Cr.
  • the memory capacity can be reduced, and the stream conversion unit and the image processing apparatus can be improved in performance.
  • processing for luminance and processing for color discrimination are performed in each processing of variable length decoding, inverse quantization, inverse frequency conversion, motion vector calculation, and motion compensation in image decoding apparatus 650. Parallel execution can improve processing efficiency and performance.
  • parallel execution can improve processing efficiency and performance.
  • by synchronizing the luminance coefficient information and the chrominance coefficient information up to the reconstruction unit 511 it is possible to appropriately process intra prediction having a dependency relationship between the luminance and the chrominance processing.
  • variable-length code any coding method may be used, such as a Huffman code, a run-length code, an arithmetic code, or a fixed-length code.
  • the memory for luminance 725, the memory for color difference 726, the memory for luminance 727, the memory for color difference 728, and the intra prediction image memory 729 are memories, any memory element capable of storing data may be a flip flop or the like. It may be of another configuration. Furthermore, a part of the memory area of the processor or a part of the cache memory may be used.
  • the size of the processing unit (second processing unit) consisting of luminance Y, color difference Cb and color difference Cr used in the stream conversion unit 622 is 32 ⁇ 32 pixels (a total of 1,536 pixels of luminance Y, color difference Cb and color difference Cr)
  • the size is not limited to the above, and may be smaller or larger.
  • the size may be 16 ⁇ 16 pixels (total of 384 pixels of luminance Y, color difference Cb and color difference Cr).
  • the processing unit (first processing unit or CU) before replacement consisting of luminance Y, color difference Cb and color difference Cr contained in the encoded stream is luminance Y (32 ⁇ 32 pixels), color difference Cb (16 ⁇ 16 pixels) and color difference
  • the stream conversion unit 622 may change the order of the plurality of pieces of coefficient information of the encoded stream into an order according to 16 ⁇ 16 pixel units.
  • the coding information is classified into information necessary for coding at least one of luminance Y, color difference Cb, and color difference Cr, and information necessary for decoding after inverse quantization, and markers are inserted. It is also good.
  • each marker described above may be any value that can identify the respective information, and may be a numerical value sequence not used in the standard, or a value indicating the bit width of the information.
  • the processing for luminance and the processing for color difference are separated and executed in parallel, this granularity is not limited.
  • the luminance Y, the chrominance Cb and the chrominance Cr may be separated and executed in parallel.
  • the luminance Y0, luminance Y1, luminance Y2, luminance Y3, color difference Cb0, color difference Cb1, color difference Cb2, color difference Cb3, color difference Cr0, color difference Cr1, color difference Cr2, and color difference Cr3 may be separated and executed in parallel. .
  • variable length codings two for variable length coding for luminance Y, variable length coding for chrominance Cb, and variable length coding for chrominance Cr
  • Variable length coding may be performed in parallel.
  • the marker insertion unit 616 may insert a common marker into coefficient information (decoded data) of each of the color difference Cb and the color difference Cr among the plurality of pieces of decoded data.
  • the device including the image decoding device, the stream conversion unit, and the bit stream buffer is referred to as an image processing device, but this image processing device may be referred to as an image decoding device.
  • processing units including luminance Y of 32 ⁇ 32 pixels, chrominance Cb of 16 ⁇ 16 pixels, and chrominance Cr of 16 ⁇ 16 pixels even within a CU of 64 ⁇ 64 pixels
  • the above-described coefficient information replacement may be performed also on a coded stream in which four TUs are arranged in series. In this case, replacement of coefficient information is performed in the above-described processing unit (TU). Such replacement is performed, for example, between the processing by the inverse frequency transform unit 506 shown in FIG. 6 and the processing by the image reconstruction unit 603.
  • the storage medium may be a magnetic disk, an optical disk, a magneto-optical disk, an IC card, a semiconductor memory, or the like as long as the program can be recorded.
  • FIG. 32 is a diagram showing an overall configuration of a content supply system ex100 for realizing content distribution service.
  • the area for providing communication service is divided into desired sizes, and base stations ex107 to ex110, which are fixed wireless stations, are installed in each cell.
  • devices such as a computer ex111, a personal digital assistant (PDA) ex112, a camera ex113, and a cell phone ex114 are mutually connected via the telephone network ex104 and the base stations ex107 to ex110. Also, 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 ex107 to ex110 which are fixed wireless stations.
  • the devices may be directly connected to each other via near field communication or the like.
  • the camera ex113 is an apparatus capable of shooting moving pictures such as a digital video camera
  • the camera ex116 is an apparatus capable of shooting still pictures and moving pictures such as a digital camera
  • the mobile phone ex114 is a GSM (registered trademark) (Global System for Mobile Communications) system, a CDMA (Code Division Multiple Access) system, a W-CDMA (Wideband-Code Division Multiple Access) system, an LTE (Long Term Evolution) system
  • 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 handy phone system
  • live distribution and the like become possible by connecting the camera ex113 and the like to the streaming server ex103 through the base station ex109 and the telephone network ex104.
  • live distribution encoding processing is performed on content (for example, a video of a music live, etc.) captured by the user using the camera ex113 as described in the above embodiments, and the encoded content is transmitted to the streaming server ex103.
  • the streaming server ex 103 streams the transmitted content data to the requested client.
  • the clients include the computer ex 111, the PDA ex 112, the camera ex 113, the mobile phone ex 114 and the like capable of decoding the above-mentioned encoded data.
  • Each device that has received the distributed data decrypts and reproduces the received data.
  • encoding processing of captured data may be performed by the camera ex113, may be performed by the streaming server ex103 that performs data transmission processing, or may be performed sharing each other.
  • the decryption processing of similarly distributed data may be performed by the client, may be performed by the streaming server ex 103, or may be performed sharing each other.
  • not only the camera ex113 but also 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 ex 116, the computer ex 111, and the streaming server ex 103, or may be performed sharing each other.
  • the encoding process and the decoding process are generally executed by a computer ex 111 and an LSI (Large Scale Integration) ex 500 included in each device.
  • the LSI ex 500 may be a single chip or a plurality of chips.
  • Software for image processing or software for image decoding is incorporated in any recording medium (CD-ROM, flexible disk, hard disk, etc.) readable by computer ex111 etc., and the encoding process or decoding process is performed using that software. You may go.
  • moving image data acquired by the camera may be transmitted. The moving image data at this time is data encoded by the LSI ex 500 included in the mobile phone ex 114.
  • the streaming server ex103 may be a plurality of servers or a plurality of computers, and may process, record, or distribute data in a distributed manner.
  • the client can receive and reproduce the encoded data.
  • the client can receive, decode, and reproduce the information transmitted by the user in real time, and even a user who does not have special rights and facilities can realize personal broadcasting.
  • At least one of the image processing apparatus and the image decoding apparatus according to each of the above embodiments can be incorporated into the digital broadcasting system ex200.
  • a bit stream of video information is communicated or transmitted to the satellite ex202 via radio waves.
  • This bit stream is a coded bit stream processed by the image processing method described in each of the above embodiments.
  • the broadcast satellite ex202 receiving this transmits a radio wave for broadcasting, and this radio wave is received by a home antenna ex204 capable of receiving satellite broadcasting.
  • a device such as a television (receiver) ex300 or a set top box (STB) ex217 decodes and reproduces the received bit stream.
  • STB set top box
  • the image decoding apparatus or the image processing apparatus described in the above embodiment can be mounted on the reproducing apparatus ex 212 which reads and decodes the bit stream recorded on the recording medium ex 214 such as CD and DVD which is a recording medium. is there. In this case, the reproduced video signal is displayed on the monitor ex 213.
  • the image decoding shown in each of the above embodiments is also applied to a reader / recorder ex 218 which reads and decodes a coded bit stream recorded on a recording medium ex 215 such as a DVD or BD, or codes and writes a video signal on the recording medium ex 215
  • a device or an image processing device In this case, the reproduced video signal is displayed on the monitor ex 219, and the video signal can be reproduced in another apparatus and system by the recording medium ex 215 on which the encoded bit stream is recorded.
  • the image decoding apparatus may be mounted in the set top box ex217 connected to the cable ex203 for cable television or the antenna ex204 for satellite / terrestrial broadcast, and this may be 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. 34 is a diagram showing a television (receiver) ex300 that uses the image decoding method described in each of the above embodiments.
  • the television ex300 is a tuner ex301 that acquires or outputs a bit stream of video information via the antenna ex204 that receives the broadcast, the cable ex203, or the like, and the encoded data that is to be received to demodulate or transmit the encoded data to the outside.
  • a modulation / demodulation unit ex302 for modulation, and a multiplexing / demultiplexing unit ex303 for separating demodulated video data and audio data, or multiplexing encoded video data and audio data are provided.
  • the television ex300 decodes the audio data and the video data, or the audio signal processing unit ex304 that encodes each information, a signal processing unit ex306 having 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 and the like that receive an input of a user operation.
  • the television ex300 includes a control unit ex310 that centrally controls each unit, and a power supply circuit unit ex311 that supplies power to each unit.
  • the interface unit ex317 is, besides the operation input unit ex312, a bridge ex313 connected to an external device such as a reader / recorder ex218, a slot unit ex314 for enabling attachment of a recording medium ex216 such as an SD card, external recording such as a hard disk It may have a driver ex 315 for connecting to a medium, a modem ex 316 connected to a telephone network, and the like. Note that the recording medium ex216 can electrically record information by a nonvolatile / volatile semiconductor memory element to be stored.
  • the components of the television ex300 are connected to one another via a synchronization bus.
  • the television ex300 decodes data acquired from the outside with the antenna ex204 and the like and reproduces the data.
  • the television ex300 receives the 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 / demultiplexing unit ex303 based on the control of the control unit ex310 having a CPU etc. .
  • the television ex300 decodes the separated audio data by the audio signal processing unit ex304, and decodes the separated video data by the video signal processing unit ex305 using the decoding method described in each of the above embodiments.
  • the decoded audio signal and video signal are output from the output unit ex309 to the outside.
  • these signals may be temporarily stored in the buffers ex318, ex319, etc. so that the audio signal and the video signal are reproduced synchronously.
  • the television ex300 may read the encoded bit stream not from the broadcast or the like, but from the recording media ex215 and ex216 such as a magnetic / optical disc and an SD card.
  • television ex300 encodes an audio signal and a video signal and externally transmits or writes the audio signal and the video signal to a recording medium or the like.
  • the television ex300 receives the user operation from the remote controller ex220 and the like, and based on the control of the control unit ex310, encodes the audio signal by the audio signal processing unit ex304, and the video signal processing unit ex305 executes the video signal in each of the above embodiments. Coding is performed using the coding method described above.
  • the encoded audio signal and video signal are multiplexed by multiplexer / demultiplexer ex303 and output to the outside. At the time of multiplexing, these signals may be temporarily stored in the buffers ex320, ex321, etc.
  • a plurality of buffers ex318 to ex321 may be provided as illustrated, or one or more buffers may be shared. Furthermore, besides being illustrated, data may be stored in a buffer as a buffer material to avoid system overflow and underflow even between, for example, the modulation / demodulation unit ex302 and the multiplexing / demultiplexing unit ex303.
  • television ex300 In addition to obtaining audio data and video data from broadcasts and recording media, etc., television ex300 has a configuration for receiving AV input from a microphone and a camera, and performs encoding processing on data obtained from them. It is also good. Although television ex300 is described here as a configuration capable of the above encoding processing, multiplexing, and external output, such processing can not be performed, and a configuration capable of only the above reception, decoding processing, and external output It may be
  • the decoding process or the encoding process may be performed by either the television ex300 or the reader / recorder ex218, or the television
  • the ex 300 and the reader / recorder ex 218 may share each other.
  • FIG. 35 shows a configuration of an information reproducing / recording unit ex400 in the case of reading or writing data from an optical disc.
  • the information reproducing / recording unit ex400 includes elements ex401 to ex407 described below.
  • the optical head ex401 irradiates a laser spot on the recording surface of the recording medium ex215 which is an optical disk to write information, detects reflected light from the recording surface of the recording medium ex215, and reads the information.
  • the modulation recording unit ex402 electrically drives the semiconductor laser incorporated in the optical head ex401 and modulates the laser light according to the recording data.
  • the reproduction / demodulation unit ex403 amplifies the reproduction signal obtained by electrically detecting the reflected light from the recording surface by the photodetector incorporated in the optical head ex401, separates and demodulates the signal component recorded in the recording medium ex215, and Play back information.
  • the buffer ex 404 temporarily holds information to be recorded on the recording medium ex 215 and information reproduced from the recording medium ex 215.
  • 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 the laser spot tracking process.
  • the system control unit ex407 controls the entire information reproducing / recording unit ex400.
  • the system control unit ex407 uses the various information held in the buffer ex404, and generates and adds new information as necessary.
  • the modulation recording unit ex402 and the reproduction / demodulation unit This is realized by performing recording and reproduction of information through the optical head ex401 while cooperatively operating the servo control unit ex406.
  • the system control unit ex 407 is configured by, for example, a microprocessor, and executes the processing of reading and writing by executing the program.
  • the optical head ex401 may be configured to perform higher-density recording using near-field light.
  • FIG. 36 shows a schematic view of the recording medium ex 215 which is an optical disc.
  • a guide groove (groove) is formed in a spiral shape on the recording surface of the recording medium ex215, and in the information track ex230, address information indicating the absolute position on the disc is recorded in advance by the change of the groove shape.
  • This address information includes information for specifying the position of the recording block ex231, which is a unit for recording data, and the recording and reproducing apparatus identifies the recording block by reproducing the information track ex230 and reading the address information.
  • the recording medium ex215 includes a data recording area ex233, an inner circumference area ex232, and an outer circumference area ex234.
  • An area used to record user data is data recording area ex233, and inner circumference area ex232 and outer circumference area ex234 arranged on the inner circumference or the outer circumference of data recording area ex233 are used for specific applications 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 those data from / to the data recording area ex233 of such a recording medium ex215.
  • an optical disc such as a single layer DVD or BD has been described as an example, but the optical disc is not limited to these, and may be an optical disc having a multilayer structure and capable of recording other than the surface.
  • multi-dimensional recording / reproduction such as recording information in the same place of the disc using light of colors of different wavelengths, recording layers of information different from different angles, etc. It may be an optical disc.
  • the digital broadcasting system ex200 it is possible to receive data from the satellite ex202 and the like by the car ex210 having the antenna ex205 and reproduce a moving image on a display device such as a car navigation system ex211 which the car ex210 has.
  • the configuration of the car navigation system ex211 may be, for example, a configuration in which a GPS reception unit is added, and the same may be considered for the computer ex111, the mobile phone ex114, and the like.
  • the terminal such as the above-mentioned mobile phone ex114 is, like the television ex300, in addition to a transceiving type terminal having both an encoder and a decoder, a transmitter terminal of only an encoder and a receiver terminal of only a decoder.
  • the implementation style of can be considered.
  • the image decoding apparatus shown in Embodiment 1 is realized as an LSI, which is typically a semiconductor integrated circuit.
  • the realized form is shown in FIG.
  • the bit stream buffer 502 and the frame memory 503 are implemented on a DRAM, and other circuits and memories are configured on an LSI.
  • an LSI may be called an IC, a system LSI, a super LSI, or an ultra LSI depending on the degree of integration.
  • the method of circuit integration is not limited to LSI's, and implementation using dedicated circuitry or general purpose processors is also possible.
  • a field programmable gate array FPGA
  • a reconfigurable processor that can reconfigure connection and setting of circuit cells in the LSI may be used.
  • a semiconductor chip on which the image decoding apparatus of the present embodiment is integrated and a display for drawing an image can be combined to configure a drawing device according to various applications.
  • the present invention can be used as an information drawing means in a mobile phone, a television, a digital video recorder, a digital video camera, car navigation and the like.
  • the display can be combined with a cathode ray tube (CRT), a liquid crystal, a flat display such as a PDP (plasma display panel) and an organic EL, a projection type display typified by a projector, and the like.
  • the system LSI may perform encoding processing or decoding processing in cooperation with a DRAM (Dynamic Random Access Memory). Further, the LSI in the present embodiment may cooperate with another storage device such as an eDRAM (embeded DRAM), a static random access memory (SRAM), or a hard disk instead of a DRAM.
  • a DRAM Dynamic Random Access Memory
  • eDRAM embeded DRAM
  • SRAM static random access memory
  • hard disk instead of a DRAM.
  • FIG. 38 shows a configuration of LSI ex 500 formed into one chip.
  • the LSI ex 500 includes elements ex 502 to ex 509 described below, and the elements are connected via the bus ex 510.
  • the power supply circuit unit ex505 starts up to an operable state by supplying power to each unit when the power is on.
  • the LSI ex 500 receives an input of an AV signal from the microphone ex 117, the camera ex 113, and the like by the AV I / O ex 509.
  • the input AV signal is temporarily stored in an external memory ex 511 such as an SDRAM.
  • 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.
  • the signal processing unit ex 507 performs coding of an audio signal and / or coding of a video signal.
  • the coding process of the video signal is the coding process described in the above embodiment.
  • the signal processing unit ex 507 further performs processing such as multiplexing of encoded audio data and encoded video data as needed, and outputs the multiplexed data from the stream I / O ex 504 to the outside.
  • the output bit stream is transmitted to the base station ex 107 or written to the recording medium ex 215.
  • the LSI ex 500 is, based on control of the microcomputer (microcomputer) ex 502, encoded data obtained from the base station ex 107 by the stream I / O ex 504 or from the recording medium ex 215 The encoded data obtained by reading is temporarily stored in the memory ex 511 or the like. Based on the control of the microcomputer ex502, 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, and the signal processing unit ex507 decodes audio data and / or video data Decoding is performed.
  • the video signal decoding process is the decoding process described in each of the above embodiments.
  • the decoded output signal is output from the AVI / O ex 509 to the monitor ex 219 or the like via the memory ex 511 or the like as appropriate.
  • the memory controller ex503 is used.
  • the memory ex 511 has been described as an external configuration of the LSI ex 500, but may be included in the LSI ex 500.
  • the LSI ex 500 may be integrated into one chip or a plurality of chips.
  • LSI LSI
  • IC system LSI
  • super LSI ultra LSI
  • the method of circuit integration is not limited to LSI's, and implementation using dedicated circuitry or general purpose processors is also possible.
  • a field programmable gate array FPGA
  • a reconfigurable processor that can reconfigure connection and setting of circuit cells in the LSI may be used.
  • the image processing apparatus according to an aspect of the present invention has been described using the above embodiments, the image processing apparatus is not limited to these.
  • FIG. 39A is a block diagram showing a configuration of an image processing apparatus according to an aspect of the present invention.
  • the image processing apparatus 10 is an image processing apparatus that performs predetermined processing on a coded stream generated by coding an image,
  • the first processing unit 1 sequentially outputs at least one component included in the first processing unit and the first processing unit 1 by performing the processing of 1.
  • the replacement unit 2 that sequentially outputs at least one component included in the second processing unit for each second processing unit different from the first processing unit;
  • the second processing unit 3 is configured to perform a second process on each of a plurality of components output from the unit 2 for each second process unit.
  • FIG. 39B is a flowchart showing an image processing method by the image processing apparatus 10.
  • An image processing method for performing predetermined processing on a coded stream generated by coding an image is performed by performing the first processing on the coded stream for each first processing unit.
  • the first processing step (S1) of sequentially outputting at least one component included in the first processing unit and the order of the plurality of components output in the first processing step (S1) change the first processing step.
  • a second processing step (S3) for performing the second processing for each second processing unit.
  • each component may be configured by dedicated hardware or may be realized by executing a software program suitable for each component.
  • Each component may be realized by a program execution unit such as a CPU or a processor reading and executing a software program recorded in a recording medium such as a hard disk or a semiconductor memory.
  • program execution unit such as a CPU or a processor reading and executing a software program recorded in a recording medium such as a hard disk or a semiconductor memory.
  • software for realizing the image processing apparatus and the like according to each of the above-described embodiments is the following program.
  • the program sequentially outputs at least one component included in the first processing unit for each first processing unit by performing the first process on the encoded stream to the computer.
  • the second processing unit different from the first processing unit is subjected to the second processing unit.
  • the second process is performed for each of the second processing units with respect to the plurality of components output in the replacement step (S2) of sequentially outputting at least one component included in the processing units of And performing a second processing step (S3) to be performed.
  • the image processing apparatus of the present invention has the effect of being able to reduce the capacity of the storage element, and, for example, high resolution information display such as television, digital video recorder, car navigation, mobile phone, digital camera, digital video camera, etc. It can be used for equipment and imaging equipment, and its value is high.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

 記憶素子の容量を削減することができる画像処理装置は、符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、その第1の処理単位に含まれる少なくとも1つの成分を順次出力する第1の可変長復号部(504)と、第1の可変長復号部(504)から出力された複数の成分の順序を入れ換えることにより、第1の処理単位とは異なる第2の処理単位ごとに、その第2の処理単位に含まれる少なくとも1つの成分を順次出力する順序入れ換え部(601)と、順序入れ換え部(601)から出力された複数の成分に対して、第2の処理単位ごとに、第2の処理を行う第2の逆量子化部(602)とを備える。

Description

画像処理装置、及び、画像処理方法
 本発明は、画像が符号化単位ブロック毎に符号化されることによって得られる符号化ストリームに対して画像処理を行う画像処理装置に関する。
 動画像を符号化する画像符号化装置は、動画像を構成する各ピクチャを複数のブロックに分割する。そして、画像符号化装置は、ラスタースキャン順に各ブロックを符号化する。画像符号化装置は、動画像を符号化して圧縮することにより、符号化ストリーム(ビットストリーム)を生成する。画像復号装置は、この符号化ストリームをラスタースキャン順でブロック毎に復号し、元の動画像の各ピクチャを再生する。
 従来の画像符号化方式の1つとしてITU-T H.264規格がある(例えば、非特許文献1を参照)。画像復号装置は、H.264規格で符号化された画像を復号するため、まず、符号化ストリームを読み込む。そして、画像復号装置は、各種ヘッダ情報を復号後、可変長復号を行う。画像復号装置は、可変長復号により得られた係数情報を逆量子化して、逆周波数変換する。これにより、差分画像が生成される。
 次に、画像復号装置は、可変長復号により得られたブロックタイプに応じて、画面内予測(イントラ予測と呼ばれることもある)または画面間予測(インター予測と呼ばれることもある)を行う。これにより、画像復号装置は、予測画像を生成する。その後、画像復号装置は、予測画像に差分画像を加算することにより、画像再構成処理を行う。そして、画像復号装置は、画像再構成処理によって得られる再構成画像にデブロックフィルタ処理を行うことで復号対象画像(符号化された画像)を復号する。
 このH.264規格では、各ブロックのサイズが常に16x16画素で構成されており、復号を行う各処理も一般的にこの16x16画素のブロック単位で行われる。
 近年、4K2K(3840x2160画素)等のように、超高精細なディスプレイの開発が行われてきている。したがって、扱う画像の画素数がますます多くなっていくことが予想される。そのため、常に16x16画素単位で符号化ならびに復号するH.264規格に係る画像符号化装置では、必要なブロック数が増大し、符号化効率が低下する。
 一方、次世代の画像符号化規格として提案されている技術の中には、このような課題を解決する技術がある(例えば、非特許文献2を参照)。この技術では、従来のH.264規格に対応する符号化単位ブロックのサイズが可変になる。そして、この技術に係る画像符号化装置は、従来の16x16画素よりも大きなブロックで画像を符号化することも可能であり、符号化効率が向上する。
 また、符号化ストリームを復号するための各処理を並列化することによって、復号効率を向上するパイプライン処理技術も存在する(例えば、特許文献1を参照)。なお、以下、画像符号化装置および画像復号装置のように符号化ストリームを取り扱う装置を画像処理装置という。
特開2005-295526号公報
ITU-T H.264規格書 Advanced video coding for generic audiovisual services、2005年3月発行 「Working Draft 4 of High-Efficiency Video Coding」、[online]、Joint Collaborative Team on Video Coding (JCT-VC)、2011年11月20日、[2011年12月6日検索]、インターネット<URL:http://phenix.int-evry.fr/jct/doc_end_user/documents/6_Torino/wg11/JCTVC-F803-v8.zip>
 しかしながら、上記非特許文献2および特許文献1の画像処理装置では、画像を構成するブロックのサイズの大型化に伴い、その画像に対して処理を行うために用いられる記憶素子に多くの容量が必要になるという課題がある。
 そこで、本発明は、上記課題を解決するものであって、画像に対して処理を行うために用いられる記憶素子の容量を削減することを可能とする画像処理装置を提供する。
 本発明の一態様に係る画像処理装置は、画像を符号化することによって生成された符号化ストリームに対して所定の処理を行う画像処理装置であって、前記符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、当該第1の処理単位に含まれる少なくとも1つの成分を順次出力する第1の処理部と、前記第1の処理部から出力された複数の成分の順序を入れ換えることにより、前記第1の処理単位とは異なる第2の処理単位ごとに、当該第2の処理単位に含まれる少なくとも1つの成分を順次出力する入れ換え部と、前記入れ換え部から出力された複数の成分に対して、前記第2の処理単位ごとに、第2の処理を行う第2の処理部とを備える。
 なお、この包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
 本発明の画像処理装置は、画像に対して処理を行うために用いられる記憶素子の容量を削減することができる。
図1Aは、所定のサイズのCUとTUに対する係数情報の格納順序を示す図である。 図1Bは、他のサイズのCUとTUに対する係数情報の格納順序を示す図である。 図2は、従来の画像処理装置の構成を示すブロック図である。 図3は、想定される画像処理装置の構成を示すブロック図である。 図4は、想定される他の画像処理装置の構成を示すブロック構成図である。 図5は、実施の形態1における画像復号装置の構成を示すブロック図である。 図6は、実施の形態1における画像復号装置の構成を他の観点から示すブロック図である。 図7Aは、ストリームの構成を示す構成図である。 図7Bは、ピクチャの構成を示す構成図である。 図7Cは、ストリーム内のデータ配列を示す図である。 図8は、実施の形態1における画像復号装置による復号動作を示すフローチャートである。 図9は、実施の形態1における画像復号装置による符号化ユニット(CU)の復号動作を示すフローチャートである。 図10は、実施の形態1における係数情報の入れ換えを説明するための図である。 図11は、実施の形態1における順序入れ換え部の処理動作を示すフローチャートである。 図12は、実施の形態1における、複数の係数情報のメモリへの書き込み順を示すフローチャートである。 図13は、実施の形態1における、複数の係数情報がメモリに書き込まれる順序と、読み出される順序とを示す図である。 図14は、実施の形態2における画像処理装置の構成を示すブロック図である。 図15は、実施の形態2におけるストリーム変換部の構成を示すブロック図である。 図16は、実施の形態2におけるストリーム変換部の処理動作を示すフローチャートである。 図17は、実施の形態2における画像復号装置の構成を示すブロック図である。 図18は、実施の形態3における画像処理装置の構成を示すブロック図である。 図19は、実施の形態3におけるストリーム変換部の構成を示すブロック図である。 図20は、実施の形態3における分割部の処理動作を示すフローチャートである。 図21は、実施の形態3における分割部による符号化情報処理を示すフローチャートである。 図22は、実施の形態3における可変長符号化の並列処理を説明するためのタイミングチャートである。 図23は、実施の形態4における画像処理装置の構成を示すブロック図である。 図24は、実施の形態4におけるストリーム変換部の構成を示すブロック図である。 図25は、実施の形態4におけるマーカ挿入部の処理動作を示すフローチャートである。 図26は、実施の形態4におけるマーカ挿入部による係数情報マーカ挿入処理を示すフローチャートである。 図27は、実施の形態4における、可変長復号ストリームに対するマーカの挿入を説明するための図である。 図28は、実施の形態5における画像処理装置の構成を示すブロック図である。 図29は、実施の形態5におけるストリーム変換部の構成を示すブロック図である。 図30は、実施の形態5における画像復号装置の可変長復号部、逆量子化部、逆周波数変換部、動きベクトル算出部および動き補償部の構成を示すブロック図である。 図31は、実施の形態5における画像復号装置のイントラ予測部の構成を示すブロック図である。 図32は、コンテンツ配信サービスを実現するコンテンツ供給システムの全体構成図である。 図33は、デジタル放送用システムの全体構成図である。 図34は、テレビの構成例を示すブロック図である。 図35は、光ディスクである記録メディアに情報の読み書きを行う情報再生/記録部の構成例を示すブロック図である。 図36は、光ディスクである記録メディアの構造例を示す図である。 図37は、画像復号処理および画像符号化処理を実現する集積回路の構成例を示す構成図である。 図38は、画像復号処理および画像符号化処理を実現する集積回路の構成例を示す構成図である。 図39Aは、画像処理装置の構成を示すブロック図である。 図39Bは、画像処理方法を示すフローチャートである。
(本発明の基礎となった知見)
 本発明者は、「背景技術」の欄において記載した画像処理装置に関し、以下の問題が生じることを見出した。
 具体的には、非特許文献2では、符号化のデータ単位として、符号化ユニット(以下、CU:Coding Unit)が定義されている。このCUは、上記符号化単位ブロックに相当する。また、このCUは、従来の符号化規格におけるマクロブロック(以下、MB)と同様に、予測方法をイントラ予測とインター予測とで切り換えることが可能なデータ単位(最小単位)であり、符号化の最も基本的なブロックサイズとして規定されている。このCUのサイズは、輝度については、8x8画素、16x16画素、32x32画素、および64x64画素のうちのいずれかである。CUのサイズが64x64画素の場合、そのサイズはH.264のMBの16倍である。つまり、非特許文献2では、H.264と比較して、最大で16倍のデータ量を必要とする。このCUを周波数変換する単位として、周波数変換ユニット(以下、TU:transform Unit)が定義されている。このTUは、上記周波数変換単位ブロックに相当する。また、このTUのサイズは、輝度については、4x4画素、8x8画素、16x16画素、32x32画素、4x16画素、16x4画素、8x32画素、および32x8画素のうちのいずれかである。
 図1Aおよび図1Bは、非特許文献2の規格に従って符号化されたビットストリーム(符号化ストリーム)の例を示す図である。画像はCU単位で符号化され、CU内では、復号対象とされる各係数情報が、輝度の少なくとも1つの係数情報(輝度情報)、色差の少なくとも1つの係数情報(色差情報)の順に配置されている。また、TUのサイズはCUのサイズと同じか小さい。したがって、CU内には、そのCU内に含まれるTUの個数分だけ、輝度情報(Y)と色差情報(Cb/Cr)が存在する。この例を、64x64画素を表現する符号化ストリームを例にとって、図1Aおよび図1Bを用いて説明する。なお、符号化ストリーム中のY0、Cb0およびCr0は、TU0の輝度Y、色差Cbおよび色差Crの係数情報をそれぞれ示す。つまり、Yn、CbnおよびCrnは、TUnの輝度Y、色差Cbおよび色差Crの係数情報をそれぞれ示す(n=0、1、2または3)。また、以下の説明において、輝度Y(またはY)、色差Cb(またはCb)および色差Cr(またはCr)は、それぞれに対応する種類の係数情報(色成分)を意味する。
 図1Aに示すように、CUサイズが64x64画素で、TUサイズが32x32画素の場合は、それぞれ32x32画素からなる4つの輝度Yと、それぞれ16x16画素からなる4つの色差Cbと、それぞれ16x16画素からなる4つの色差Crが、Y0、Y1、Y2、Y3、Cb0、Cb1、Cb2、Cb3、Cr0、Cr1、Cr2、Cr3の順に格納されている。一方、図1Bに示すように、CUサイズが32x32画素、TUサイズが32x32画素の場合には、1つのTUまたはCU内には、Y(32x32画素)、Cb(16x16画素)、Cr(16x16画素)がこの順に格納されている。64x64画素内には、CUまたはTUが図1Bに示す順で4つ並んでおり、符号化ストリームには、4つの輝度Y、4つの色差Cbおよび4つの色差Crがそれぞれ、Y0、Cb0、Cr0、Y1、Cb1、Cr1、Y2、Cb2、Cr2、Y3、Cb3、Cr3の順に格納されている。
 従来のH.264のストリーム構成(非特許文献1)では、輝度情報および色差情報のサイズはそれぞれ16x16画素および8x8画素である。さらに、輝度情報および色差情報は8x8画素単位で格納され、それらの格納順(配置)は固定である。しかし、非特許文献2の規格に従った符号化ストリームでは、上記のとおり、輝度情報および色差情報のサイズは可変(最大32x32画素、最小4x4画素)であり、また、それらのサイズに応じて輝度情報および色差情報の格納順(配置)が異なるという特徴がある。
 以上のように、非特許文献2において、符号化単位ブロックである符号化ユニット(CU)のサイズを可変にし、最大サイズを64x64画素とH.264に比べて16倍とすることで、符号化効率の向上が図られている。
 また、上述のように、特許文献1には、このような符号化ストリームを復号するための各処理を並列に行うことによって、復号処理の効率を向上するパイプライン処理技術を用いた画像処理装置(画像復号装置)が記載されている。
 図2は、特許文献1の画像処理装置の構成を示すブロック図である。
 この画像処理装置におけるパイプライン処理技術では、図2に示すとおり、例えば、逆量子化部602はメモリ705からデータを読み出し、その結果をメモリ706に書き込む。同時に、逆周波数変換部506は、メモリ706からデータを読み出して、その結果をメモリ707に書き込む。逆量子化部602と逆周波数変換部506との間のメモリ706は、それぞれの処理が一度に必要とするデータを保持する必要がある。その他の処理部間(可変長復号部504と逆量子化部602との間など)も同様である。
 図3は、非特許文献1および特許文献1から想定される画像処理装置の構成を示すブロック図である。
 H.264規格に対して特許文献1を適用した場合、図3に示すように、例えばメモリ730~733はそれぞれ、少なくとも768画素のデータ(係数情報)を保持する必要がある。つまり、メモリ731は、16x16=256画素からなる輝度情報と、それぞれ8x8=64画素からなる2つの色差情報とを含む384画素のデータを2セット分保持する必要がある。
 図4は、非特許文献2および特許文献1から想定される画像処理装置の構成を示すブロック図である。
 この特許文献1の技術を非特許文献2に適用した場合、図4に示すように、メモリ734~737には、メモリ731の容量の16倍、つまり、12,288画素のデータを保持するだけの多くの容量が必要になるという問題がある。このようなメモリは非常に大きいものであり、コストの増加を招くことになる。また、メモリが大きいと消費電力が増大する。なお、ここでは、メモリは、データの記憶が可能な記憶素子を指す。
 ここで、パイプラインの各処理部間にある記憶素子の容量を減らすためには、処理を行うデータのサイズを小さくする方法があるが、非特許文献2においては、符号化ユニット(CU)のサイズによりデータの格納順およびサイズが異なるために、単純に、データのサイズを小さくすることができない。
 図1Aおよび図1Bに示す符号化ストリームでは、ともに周波数変換ユニット(TU)サイズが32x32画素のブロックであるが、CUサイズが異なる。輝度Y、色差Cb、色差CrはCU内にこの順に格納されているため、同一サイズのTUであっても、ストリーム中でTUが出現する順序がそれぞれの符号化ストリームで異なる。
 この例では、先頭32x32画素分はともに左上のTU0に対応する輝度Y0であるが、次に現れる画素は、図1Aに示す符号化ストリームの場合では、右上のTU1に対応する32x32画素分の輝度Y1に属する。一方、図1Bに示す符号化ストリームの場合では、次に現れる画素は、左上のTU0に対応する16x16画素分の色差Cb0に属する。このように、CUおよびTUサイズにより、互いに異なる2つの符号化ストリームの間で、Y、CbおよびCrのサイズが異なるだけでなく、互いに対応するTUの位置も異なる。したがって、元の符号化ストリームを単純に小さなサイズのブロックに分割して処理することはできない。
 そこで、符号化ストリーム中の係数情報を入れ換えることで、より小さなブロック単位ごとに処理を行うことができ、記憶素子の容量を削減することを可能にする画像処理装置及び画像処理方法を発明するに至った。つまり、本発明では、処理効率(符号化効率または復号効率)の低下を抑えながら、画像に対して処理を行うために用いられる記憶素子の容量を削減することが可能な画像処理装置を提供する。
 上記問題を解決するために、本発明の一態様に係る画像処理装置は、画像を符号化することによって生成された符号化ストリームに対して所定の処理を行う画像処理装置であって、前記符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、当該第1の処理単位に含まれる少なくとも1つの成分を順次出力する第1の処理部と、前記第1の処理部から出力された複数の成分の順序を入れ換えることにより、前記第1の処理単位とは異なる第2の処理単位ごとに、当該第2の処理単位に含まれる少なくとも1つの成分を順次出力する入れ換え部と、前記入れ換え部から出力された複数の成分に対して、前記第2の処理単位ごとに、第2の処理を行う第2の処理部とを備える。
 ここで、前記入れ換え部は、前記第1の処理単位よりも小さいサイズの前記第2の処理単位ごとに、当該第2の処理単位に含まれる少なくとも1つの成分を順次出力してもよい。
 これにより、第1の処理によって、複数の成分が第1の処理単位ごとに出力された場合であっても、その複数の成分の順序が入れ換えられ、複数の成分が第2の処理単位ごとに出力される。そして、複数の成分に対する第2の処理が、第2の処理単位ごとに行われるため、第2の処理が行われた複数の成分を、第2の処理単位ごとに記憶素子に格納しておくことができる。したがって、第2の処理単位が第1の処理単位よりも小さい場合には、その第2の処理が行われた複数の成分を格納しておくための記憶素子の容量を削減することができる。つまり、例えばパイプライン処理を行うための記憶素子の容量を抑えることができる。さらに、記憶素子の容量を削減することができるため、コストおよび消費電力を抑えることができる。さらに、第1の処理単位が大きいことによって、第1の処理の処理効率の低下を防ぐことができる。
 なお、第2の処理単位が第1の処理単位よりも大きい場合には、大きな処理単位ごとに第2の処理が行われるため、符号化ストリームに対する処理効率を向上することができる。
 ここで、例えば、前記第1の処理単位は、前記画像の符号化に用いられた符号化ユニットである。このとき、前記第2の処理単位は、前記符号化ユニットの周波数変換に用いられた周波数変換ユニット、または前記周波数変換ユニットよりも小さいサイズの処理単位であってもよい。また、前記第1の処理部は、前記符号化ストリームの構成に応じて可変なサイズの前記第1の処理単位ごとに、当該第1の処理単位に含まれる少なくとも1つの成分を順次出力してもよい。同様に、前記入れ換え部は、前記符号化ストリームの構成に応じて可変なサイズの前記第2の処理単位ごとに、当該第2の処理単位に含まれる少なくとも1つの成分を順次出力してもよい。また、前記画像処理装置は、さらに、前記第2の処理によって生成されるストリームに対して第3の処理を行うことによって、前記符号化ストリームを復号する第3の処理部を備えてもよい。前記第1の処理単位は、前記画像の符号化に用いられる予測方法をイントラ予測とインター予測とに切り換えることが可能な最小単位であってもよい。
 これにより、第1の処理単位が符号化ユニットである場合には、大きなサイズの符号化ユニットであっても、その符号化ユニットから構成される符号化ストリームを(例えば、パイプライン処理により)復号するために用いられる記憶素子の容量を抑えることができる。さらに、符号化ユニットを小さくする必要がないため、その符号化ストリームを生成するための画像符号化装置の符号化効率の低下を防ぐことができる。さらに、可変サイズの第1の処理単位および第2の処理単位に対して適切に処理することができる。
 また、前記第1の処理部は、前記第1の処理単位に含まれる複数の成分として複数の色成分のそれぞれを順次出力し、前記入れ換え部は、前記第1の処理部から出力された複数の色成分の順序を入れ換えることにより、前記第2の処理単位に含まれる複数の色成分を順次出力してもよい。
 これにより、記憶素子の容量を削減することができるだけでなく、画面中で同一座標を表現する複数の色成分を同時に処理することができ、動作効率を向上することができる。
 また、前記第1の処理部は、前記複数の色成分のそれぞれを順次出力することによって、前記複数の色成分のそれぞれを記憶部に順次格納し、前記入れ換え部は、前記記憶部に格納されている前記複数の色成分の順序と異なる順序で、前記複数の色成分のそれぞれを順次読み出すことによって、前記複数の色成分の順序を入れ換えてもよい。または、前記入れ換え部は、前記第1の処理部から出力された複数の色成分の順序と異なる順序で前記複数の色成分のそれぞれを記憶部に順次書き込むことによって、前記複数の色成分の順序を入れ換え、前記第2の処理部は、前記記憶部に格納されている前記複数の色成分の順序にしたがって、前記複数の色成分のそれぞれを順次読み出してもよい。
 これにより、記憶素子の容量を削減することができるだけでなく、例えばメモリなどの記憶部を用いて、画面中で同一座標を表現する複数の色成分を同時に適切に処理することができ、動作効率を向上することができる。
 また、前記第2の処理部は、前記第2の処理単位に含まれる複数の色成分を用いて、当該第2の処理単位に対応する画像を再構成する再構成処理を、前記第2の処理に含まれる処理として行ってもよい。
 これにより、記憶素子の容量を削減することができるだけでなく、画面中で同一座標を表現する複数の色成分を同時に処理することが必要な画像の再構成処理の動作効率を向上することができる。
 また、前記第1の処理部は、可変長復号を前記第1の処理として行い、前記第2の処理部は、前記第2の処理に含まれる処理として逆量子化を行ってもよい。
 これにより、パイプライン処理における逆量子化以降の処理に用いられる処理部間に必要な記憶素子の容量を削減することができる。
 また、前記第1の処理部は、可変長復号を前記第1の処理として行い、前記第1の処理単位に含まれる少なくとも1つの成分として色成分を順次出力し、前記入れ換え部は、前記第1の処理部から出力された複数の色成分の順序を入れ換え、前記第2の処理部は、前記第2の処理に含まれる処理として可変長符号化を行ってもよい。
 これにより、符号化ストリームは可変長復号され、複数の成分が入れ換えられた状態で、再び可変長符号化されることになる。その結果、符号化ストリームをトランスコードすることができる。また、符号化ストリームの生成において用いられた可変長符号化の方式よりも簡単に可変長復号することができる可変長符号化の方式を、第2の処理において用いることができる。その結果、第2の処理によって出力された複数の色成分からなる、トランスコード後の符号化ストリームの復号に要する負担を、トランスコード前の符号化ストリームの復号に要する負担よりも軽減することができる。つまり、符号化ストリームの復号に要する画像復号装置の処理負担を軽減することができるとともに、その装置の性能保証を容易にすることができる。
 また、前記第1の処理部は、可変長復号を前記第1の処理として行い、前記第1の処理単位に含まれる少なくとも1つの成分として色成分を順次出力し、前記入れ換え部は、前記第1の処理部から出力された複数の色成分のそれぞれを、色成分の種類ごとに分類する分割部と、色成分の種類ごとに、当該種類に属する複数の色成分に対する可変長符号化を行い、前記可変長符号化によって生成されるストリームを記憶部に格納する可変長符号化部と、前記記憶部に格納されている、色成分の種類ごとに生成されたストリームから、前記第1の処理部から出力された複数の色成分の順序とは異なる順序で、前記複数の色成分のそれぞれを順次読み出すことによって、前記複数の色成分の順序が入れ換えられた入れ換え済符号化ストリームを生成するストリーム再構成部とを備え、前記可変長符号化部は、色成分の種類のそれぞれに対する可変長符号化を並列に行い、前記入れ換え済符号化ストリームは、前記第2の処理単位のサイズと同じサイズの符号化ユニットを含んでもよい。または、前記第1の処理部は、可変長復号を前記第1の処理として行い、前記第1の処理単位に含まれる少なくとも1つの成分として色成分を順次出力し、前記入れ換え部は、前記第1の処理部から出力された複数の色成分のそれぞれに対して、当該色成分の種類を識別するためのマーカを付加するマーカ挿入部と、前記マーカ挿入部によって付加されたマーカに基づいて、前記第1の処理部から出力された複数の色成分のそれぞれの種類を識別し、色成分の種類ごとに、当該種類に属する複数の色成分に対する可変長符号化を行い、前記可変長符号化によって生成されるストリームを記憶部に格納する可変長符号化部と、前記記憶部に格納されている、色成分の種類ごとに生成されたストリームから、前記第1の処理部から出力された複数の色成分の順序とは異なる順序で、前記複数の色成分を順次読み出すことによって、前記複数の色成分の順序が入れ換えられた入れ換え済符号化ストリームを生成するストリーム再構成部とを備え、前記可変長符号化部は、色成分の種類のそれぞれに対する可変長符号化を並列に行ってもよい。
 これにより、例えば、輝度の色成分に対する可変長符号化と、色差の色成分に対する可変長符号化とが並列に行われる。したがって。可変長符号化を高速化することができ、動作効率を向上することができる。
 また、前記ストリーム再構成部は、前記複数の色成分のそれぞれに対して付加されたマーカとともに前記複数の色成分を順次読み出すことによって、前記複数の色成分のそれぞれに対してマーカが付加された前記入れ換え済符号化ストリームを生成し、前記第2の処理部は、前記入れ換え済符号化ストリームに含まれる複数の前記マーカに基づいて、前記色成分の種類ごとに、当該種類に属する複数の色成分に対する可変長復号を行う可変長復号部と、前記色成分の種類ごとに、当該種類に属する可変長復号された前記複数の色成分に対する逆量子化を行う逆量子化部と、前記色成分の種類ごとに、当該種類に属する逆量子化された前記複数の色成分に対する逆周波数変換を行うことによって、複数の前記マーカを含む色成分データを生成する逆周波数変換部と、前記色成分の種類ごとに生成された色成分データを、前記色成分データに含まれる複数の前記マーカに基づいて識別し、前記入れ換え部によって入れ換えられた順序どおりに、逆周波数変換された前記複数の色成分が配列するように、前記複数の色成分を再構成する成分再構成部とを備え、前記可変長復号部、前記逆量子化部、および前記逆周波数変換部はそれぞれ、前記色成分の種類のそれぞれに対する処理を並列に行ってもよい。
 これにより、入れ換え済符号化トリームに対する可変長復号、逆量子化および逆周波数変換のそれぞれの処理では、例えば、輝度の色成分に対する処理と、色差の色成分に対する処理とが並列に行われるため、可変長復号、逆量子化および逆周波数変換を高速化することができ、動作効率を向上することができる。
 ここで、具体的には、第1の処理部は、第1の処理単位ごとに、当該第1の処理単位に含まれる複数の成分を、4つの輝度成分、4つの第1の色差成分(Cb)、4つの第2の色差成分(Cr)の順に出力し、前記入れ換え部は、前記複数の成分の順序を入れ換えることにより、第2の処理単位ごとに、当該第2の処理単位に含まれる複数の成分を、1つの輝度成分、1つの第1の色差成分、1つの第2の色差成分の順に出力してもよい。
 以下、実施の形態における画像処理装置について、図面を参照しながら説明する。
 なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
 また、64x64画素、および、32x32画素等の表現は、それぞれ、64画素x64画素、および、32画素x32画素等のサイズを意味する。
 また、以下において、ブロック、データ単位および符号化ユニット(CU)等の表現は、それぞれ、まとまった領域を意味する。それらは、それぞれ、画像領域を意味する場合もある。あるいは、それらは、それぞれ、符号化ストリームにおけるデータ領域を意味する場合もある。
 また、画像は、動画像、静止画像、動画像を構成する複数のピクチャ、1つのピクチャ、および、ピクチャの一部等のいずれでもよい。
 (実施の形態1)
 本実施の形態における画像処理装置である画像復号装置は、逆量子化部内に、符号化ストリーム中の係数情報(成分)を入れ換える順序入れ換え部を持つ点に特徴がある。
  (1-1.概要)
 まず、本実施の形態における画像復号装置の概要について説明する。本実施の形態における画像復号装置は、符号化ストリームに対して可変長復号を行った後、符号化ユニット(CU)単位で格納されている係数情報を、順序入れ換え部で並べ換えることで、CU単位よりも小さなサイズで、可変長復号よりも後段の処理を行う。具体的には、画像復号装置は、符号化ストリームに対して64x64画素のCU単位で可変長復号を行った後、32x32画素のTU単位(32x32画素の輝度Y、16x16画素の色差Cb、および16x16画素の色差Crからなる単位)で、逆量子化以降の処理を行う。
  (1-2.構成)
 次に、本実施の形態の画像復号装置の構成について説明する。
 図5は、本実施の形態における画像復号装置の構成を示すブロック図である。本実施の形態の画像復号装置513は、制御部501、ビットストリームバッファ502、フレームメモリ503、可変長復号部504、入れ換え逆量子化部505、逆周波数変換部506、イントラ予測部507、動きベクトル算出部508、動き補償部509、スイッチ510、再構成部511、およびデブロックフィルタ部512を備える。なお、図5には示されていないが、画像復号装置513は、メモリ701、メモリ702、メモリ703およびメモリ704を備えている(図6参照)。
 図6は、本実施の形態における画像復号装置513の構成を他の観点から示すブロック図である。つまり、画像復号装置513は、可変長復号部504、入れ換え逆量子化部505、逆周波数変換部506、画像再構成部603、デブロックフィルタ部512、および4つのメモリ701~704を備える。ここで、入れ換え逆量子化部505は、順序入れ換え部601および逆量子化部602を備える。なお、図6では、説明の都合上、制御部501、ビットストリームバッファ502およびフレームメモリ503を省略している。さらに、画像再構成部603は、イントラ予測部507、動きベクトル算出部508、動き補償部509、スイッチ510、および再構成部511から構成されている。
 制御部501は、画像復号装置513の全体を制御する。ビットストリームバッファ502は、入力された符号化ストリームを格納する。フレームメモリ503は、復号された画像データを格納する。
 可変長復号部504は、ビットストリームバッファ502から符号化ストリームを読み出し、その符号化ストリームに対して可変長復号を行うことによって、複数の量子化値を生成して入れ換え逆量子化部505に出力する。入れ換え逆量子化部505は、その複数の量子化値(複数の係数情報)のうちの少なくとも一部の順序を入れ換える。さらに、入れ換え逆量子化部505は、入れ換えられた順序で複数の量子化値のそれぞれに対して逆量子化を行うことによって、複数の周波数係数を生成して逆周波数変換部506に出力する。逆周波数変換部506は、その複数の周波数係数に対して逆周波数変換を行うことによって、差分画像を生成する。イントラ予測部507は、復号対象画像に対して画面内予測(イントラ予測ともいう)を行うことによって、予測画像を生成する。動きベクトル算出部508は、動きベクトルを算出して動き補償部509に出力する。動き補償部509は、その動きベクトルを用いて、復号対象画像に対して動き補償を行うことによって、予測画像を生成する。スイッチ510は、予測画像の取得先をイントラ予測部507および動き補償部509のうちの何れかに切り換え、その取得先から取得された予測画像を再構成部511に出力する。再構成部511は、逆周波数変換によって生成された差分画像と、予測画像とから復号画像を生成する画像再構成処理(画像の再構成処理)を行う。デブロックフィルタ部512は、画像再構成処理によって生成された復号画像のブロックノイズを除去することによって、その復号画像を高画質化する。
  (1-3.動作)
 次に、図5に示した画像復号装置513の動作を説明する。
 図7Aおよび図7Bは、符号化ストリームの階層的な構成を示す図である。複数のピクチャを1まとまりにしたものをシーケンスと呼ぶ。各ピクチャはスライスに分割される。さらに、スライスは、符号化ユニット(CU)に分割される。さらにCUは、周波数変換ユニット(TU)と、予測ユニット(PU)とで構成される。なお、ピクチャをスライスに分割しない場合もある。符号化ユニット(CU)は、64x64画素~8x8画素のサイズで設定される。CUは、画像の符号化に用いられる予測方法をイントラ予測とインター予測とに切り換えることが可能なデータ単位(最小単位)である。周波数変換ユニット(TU)は、符号化ユニット(CU)の内部で32x32画素~4x4画素のサイズで設定される。予測ユニット(PU)は、符号化ユニット(CU)の内部で64x64画素~4x4画素のサイズで設定される。PUは、イントラ予測のモード、または、インター予測の動きベクトルを有する。
 図7Cは、符号化ストリーム内の各データの配置を示す図である。
 符号化ストリームは、図7Cに示すように、画像を階層的に符号化することによって構成されており、シーケンスを制御するためのシーケンスヘッダ、ピクチャを制御するためのピクチャヘッダ、スライスを制御するためのスライスヘッダ、および符号化ユニット(CU)から構成される。なお、H.264規格では、シーケンスヘッダをSPS(Sequence Parameter Set)、ピクチャヘッダをPPS(picture parameter Set)と呼んでいる。
 図8は、画像復号装置513による符号化ストリームの1シーケンスに対する復号動作を示すフローチャートである。図8に示すように、画像復号装置513は、まず、シーケンスヘッダを復号する(S901)。シーケンスヘッダの復号(S901)は、制御部501の制御のもと、ビットストリームバッファ502に蓄えられた符号化ストリームを可変長復号部504が復号することによって行われる。次に、同様にして、画像復号装置513は、ピクチャヘッダを復号し(S902)、スライスヘッダを復号する(S903)。
 次に、画像復号装置513はCUを復号する(S904)。このCUの復号については後で詳しく説明する。1つのCUの復号が終わると、画像復号装置513はそれがスライスの最後のCUかどうかを判断する(S905)。スライスの最後のCUでない場合は、画像復号装置513は、再びS904の処理を行い、次のCUの復号を行う。スライスの最後のCUである場合は、画像復号装置513はS906の処理を行う。
 つまり、画像復号装置513は、S906において、先に復号されたスライスがピクチャの最後のスライスかどうかを判断する。ピクチャの最後のスライスでない場合は、画像復号装置513は、再びS903からの処理を行い、次のスライスヘッダの復号を行う。ピクチャの最後のスライスである場合は、画像復号装置513はS907の処理を行う。
 つまり、画像復号装置513は、S907において、先に復号されたピクチャがシーケンスの最後のピクチャかどうかを判断する。シーケンスの最後のピクチャでない場合は、画像復号装置513は、再びS902からの処理を行い、次のピクチャヘッダの復号を行う。画像復号装置513は、シーケンスの全てのピクチャの復号が終わると一連の復号動作を終了する。
 図9は、画像復号装置513による1つのCUに対する復号動作を示すフローチャートである。つまり、図9は、図8に示すS904における符号化ユニットを復号する処理を示す。まず、画像復号装置513は、入力された符号化ストリームを可変長復号部504によって可変長復号する(S101)。可変長復号部504は、符号化情報(CU種別、イントラ予測モード、動きベクトル情報、量子化パラメータなど)と、各画素データに対応する係数情報(輝度Y、色差Cbおよび色差Crのそれぞれの量子化値)とを出力する。
 次に、動きベクトル算出部508は、復号対象のCUが、動き補償を用いて符号化されたインターCUであるか、イントラ予測を用いて符号化されたイントラCUであるかの判定を行う(S102)。ここで、インターCUの場合は、動きベクトル算出部508は、符号化情報を用いて動きベクトルを算出する(S103)。つまり、動きベクトル算出部508は、予測動きベクトルを算出し、この予測動きベクトルと、符号化ストリームに含まれる動きベクトル情報(動きベクトルの差分値)とを加算することによって、動きベクトルを算出する。なお、符号化情報は、可変長復号部504から制御部501に出力され、その後、各処理部(画像復号装置513の各構成要素)に入力される。係数情報は入れ換え逆量子化部505に出力される。次に、入れ換え逆量子化部505は逆量子化処理を行う(S104)。なお、可変長復号部504および入れ換え逆量子化部505の動作については後で詳細に説明する。次に、逆周波数変換部506は逆周波数変換を行う(S105)。
 次に、制御部501は、復号対象のCUがインターCUであるかイントラCUであるかの判定を行う(S106)。インターCUの場合は、制御部501は、動きベクトル算出部508によって算出された動きベクトルを動き補償部509に入力させる。そして、制御部501は、フレームメモリ503から動き補償部509に、その動きベクトルが示す参照画像を転送させる(S107)。動き補償部509は、転送された参照画像を用いて、1/2画素精度や1/4画素精度の予測画像を生成する(S108)。つまり、動き補償部509は動き補償を行う。
 一方、インターCUで無い場合(S106)、すなわちイントラCUの場合は、制御部501は、イントラ予測部507にインター予測の処理を行わせ、予測画像を生成させる(S109)。制御部501は、ステップS106の判定結果に応じてスイッチ510を制御することによって、再構成部511に出力される予測画像を、動き補償部509によって生成された予測画像、およびイントラ予測部507によって生成された予測画像のうちの何れかに切り換える。
 再構成部511は、得られた予測画像と、逆周波数変換部506から出力される差分画像とを加算することによって復号画像を生成する(S110)。つまり、再構成部511は、画像再構成処理(画像を再構成すること)を行う。次に、デブロックフィルタ部512は、その画像再構成処理によって得られた復号画像に対して、ブロックノイズを低減するデブロックフィルタ処理を行う(S111)。これにより、ブロックフィルタ処理された復号画像がフレームメモリ503に格納される。以上で、1つのCUの復号動作が終了する。
 次に、図6を用いて、本実施の形態の特徴である可変長復号部504、順序入れ換え部601および逆量子化部602の動作について詳しく説明する。ここでは、64x64画素の符号化ユニットを復号する場合を考える。
 可変長復号部504は、入力された符号化ストリームに対して可変長復号を行う。その結果、可変長復号部504は、符号化情報(CU種別、イントラ予測モード、動きベクトル情報、量子化パラメータなど)と、各画素データに対応する係数情報とを出力する。
 ここでは、係数情報の処理フローについて説明する。可変長復号部504から出力された係数情報は、メモリ701を介し、順序入れ換え部601に渡される。順序入れ換え部601は、符号化ストリーム内での複数の係数情報の順序(配置)を入れ換え、順序が入れ換えられた複数の係数情報が逆量子化部602に出力される。逆量子化部602は、それらの係数情報に対して逆量子化を行う。
 ここで、順序入れ換え部601の動作について、図10および図11を用いて詳しく説明する。なお、符号化ストリームでは、図1Aに示されるように、インター予測およびイントラ予測の切り換え単位であるCUのサイズは64x64画素である。また、周波数変換ユニットであるTUのサイズは32x32画素である。
 図10は、複数の係数情報の順序の入れ換えを説明するための図である。また、図11は、順序入れ換え部601の処理動作を示すフローチャートである。なお、この入れ換えによって、可変長復号部504から出力された複数の係数情報の順序が入れ換えられる。
 可変長復号後の複数の係数情報はメモリ701に、図10の(a)に示される順序で格納または配置される。順序入れ換え部601は、図11に示すフローによって、まず32x32画素の左上TU0に対応するY0(32x32画素)、Cb0(16x16画素)、およびCr0(32x32画素)を読み出し、それらの係数情報(1,536画素)を逆量子化部602へ出力する(S201)。次に、順序入れ換え部601は、右上TU1に対応するY1(32x32画素)、Cb1(16x16画素)、およびCr1(16x16画素)を読み出し、それらの係数情報(1,536画素)を逆量子化部602へ出力する(S202)。次に、順序入れ換え部601は、左下TU2に対応するY2(32x32画素)、Cb2(16x16画素)、およびCr2(16x16画素)を読み出し、それらの係数情報(1,536画素)を逆量子化部602へ出力する(S203)。次に、順序入れ換え部601は、右下TU3に対応するY3(32x32画素)、Cb3(16x16画素)、およびCr3(16x16画素)を読み出し、それらの係数情報(1,536画素)を逆量子化部602へ出力する(S204)。
 このように、順序入れ換え部601は、CU内で同じ座標に位置するブロック(TU)に対応する輝度および色差の係数情報を、ブロックごとに順に読み出して出力する。このような読み出しと出力が順次繰り返されることで、輝度Y、色差Cbおよび色差Crのそれぞれの複数の係数情報の順序が、図10に示すように入れ換えられる。つまり、図10の(a)に示される順から(b)に示される順に入れ換えられる。その結果、逆量子化部602は32x32画素単位(TU単位)で係数情報を受け取り、その画素単位で逆量子化を行う。また、逆量子化の後の処理も同様に、32x32画素単位(TU)で行われる。
 以上の係数情報の順序の入れ換えにより、Y(32x32画素を4つ)、Cb(16x16画素を4つ)、およびCr(16x16画素を4つ)をまとめた計6,144画素単位(CUサイズの単位)を、1,536画素単位(TUサイズの単位)で4回に分割して出力することが可能となる。
 次に、逆量子化部602は、順序入れ換え部601から、複数の係数情報の入れ換えが行われた符号化ストリームを取得し、その符号化ストリームに対して、Y(32x32画素)、Cb(16x16画素)、およびCr(16x16画素)からなる1,536画素単位ごとに逆量子化を行う。そして、逆量子化部602は、その逆量子化によって生成された複数の周波数係数をメモリ702に格納する。逆周波数変換部506は、メモリ702から複数の周波数係数を読み出し、その複数の周波数係数に対して上述の1,536画素単位ごとに逆周波数変換を行う。そして、逆周波数変換部506は、その逆周波数変換によって生成される差分画像をメモリ703に格納する。画像再構成部603は、メモリ703から差分画像を読み出し、その差分画像に対して上述の1,536画素単位ごとに画像再構成処理などの処理を行う。そして、画像再構成部603は、その処理によって生成された復号画像をメモリ704に格納する。デブロックフィルタ部512は、メモリ704から復号画像を読み出し、その復号画像に対して上述の1,536画素単位ごとにデブロックフィルタ処理を行う。なお、上述の量子化値、周波数係数および画素は、それぞれ状態が異なっているが、所定の係数情報または成分を意味する。
 このような本実施の形態を纏めると、以下のとおりである。
 画像復号装置513は、画像を符号化することによって生成された符号化ストリームに対して所定の処理を行う画像処理装置であって、例えば可変長復号部504である第1の処理部と、例えば順序入れ換え部601である入れ換え部と、例えば逆量子化部602である第2の処理部とを備える。
 第1の処理部は、符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、当該第1の処理単位に含まれる少なくとも1つの成分を順次出力する。例えば、第1の処理単位はCUである。また、第1の処理単位は、符号化ストリームの構成に応じて可変なサイズの第1の処理単位(CU)ごとに、その第1の処理単位に含まれる少なくとも1つの成分を順次出力する。
 入れ換え部は、第1の処理部から出力された複数の成分の順序を入れ換えることにより、第1の処理単位とは異なる第2の処理単位ごとに、その第2の処理単位に含まれる少なくとも1つの成分を順次出力する。例えば、第2の処理単位はTU、またはTUよりも小さいサイズの処理単位である。また、入れ換え部は、符号化ストリームの構成に応じて可変なサイズの第2の処理単位ごとに、第2の処理単位に含まれる少なくとも1つの成分を順次出力する。また、入れ換え部は、第1の処理単位よりも小さいサイズの第2の処理単位ごとに、その第2の処理単位に含まれる少なくとも1つの成分を順次出力する。
 また、第1の処理部は、第1の処理単位に含まれる複数の成分として複数の色成分のそれぞれを順次出力する。このとき、入れ換え部は、第1の処理部から出力された複数の色成分の順序を入れ換えることにより、第2の処理単位に含まれる複数の色成分を順次出力する。この複数の色成分は、例えば、輝度Yの係数情報、色差Cbの係数情報および色差Crの係数情報などである。
 また、第1の処理部は、複数の色成分のそれぞれを順次出力することによって、複数の色成分のそれぞれを記憶部に順次格納する。記憶部は、例えばメモリ701である。ここで、図11に示すように、入れ換え部は、その記憶部に格納されている複数の色成分の順序と異なる順序で、複数の色成分のそれぞれを順次読み出すことによって、複数の色成分の順序を入れ換える。
 さらに、第2の処理部は、第2の処理単位に含まれる複数の色成分を用いて、その第2の処理単位に対応する画像を再構成する再構成処理を、前記第2の処理に含まれる処理として行ってもよい。つまり、第2の処理部は、画像再構成部603または再構成部511としての機能を備えていてもよい。また、第1の処理部は、可変長復号を第1の処理として行い、第2の処理部は、第2の処理に含まれる処理として逆量子化を行ってもよい。
 なお、上記成分は、色成分であっても他の成分(例えば、符号化情報など)であってもよい。
  (1-4.効果)
 このように、本実施の形態では、可変長復号部504によって出力されてメモリ701に格納された複数の係数情報の順序が、逆量子化部602の前にある順序入れ換え部601によって入れ換えられる。これにより、逆量子化部602以降のメモリ702、メモリ703およびメモリ704の容量を、64x64画素の2セット分(輝度Y、色差Cbおよび色差Crのそれぞれの画素の合計である12,288画素)から32x32画素の2セット分(輝度Y、色差Cbおよび色差Crのそれぞれの画素の合計である3,072画素)に削減することが可能となる。つまり、逆量子化部602以降の各処理部間をつなぐメモリの容量をそれぞれ1/4に削減することができる。これにより、メモリにかかるコストを削減できると共に、消費電力の低減を図ることができる。
  (なお書き)
 なお、本実施の形態においては、可変長符号を用いているが、ハフマン符号やランレングス符号、算術符号、あるいは固定長符号のように、どのような符号化方式を用いても構わない。
 また、各処理部の構成は、一部あるいは全てを専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
 また、フレームメモリ503、メモリ701、メモリ702、メモリ703、メモリ704は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
 また、順序入れ換え部601において用いられる、輝度Y、色差Cbおよび色差Crからなる処理単位(第2の処理単位)のサイズは、32x32画素(輝度Y、色差Cbおよび色差Crの合計1,536画素)のサイズに限定されるものではなく、それより小さなサイズや大きなサイズであってもよい。例えば、16x16画素(輝度Y、色差Cbおよび色差Crの合計384画素)のサイズであってもよい。つまり、符号化ストリームに含まれる、輝度Y、色差Cbおよび色差Crからなる入れ換え前の処理単位(第1の処理単位またはCU)が、輝度Y(32x32画素)、色差Cb(16x16画素)および色差Cr(16x16画素)からなる32x32画素単位で構成されている場合、順序入れ換え部601は、その符号化ストリームの複数の係数情報の順序を、16x16画素単位にしたがった順序に入れ換えてもよい。
 また、順序入れ換え部601は、例として、逆量子化部602の直前に配置されていたが、これに限定されるものではない。逆周波数変換部506の直前であっても良いし、画像再構成部603の直前であっても良い。
 また、順序の入れ換えを、メモリからの読み出し時に行う例で示したが、これに限定されるものではない。例えば、図12に示すフローに従って、図13に示す通り、メモリへの書き込み時に、係数情報の順序の入れ換えを行った上で、読み出し時に順番に読み出す方法でも構わない。
 図12は、複数の係数情報のメモリへの書き込み順を示すフローチャートである。図13は、複数の係数情報がメモリに書き込まれる順序と、読み出される順序とを示す図である。
 図12に示すように、順序入れ換え部601は、可変長復号部504から複数の係数情報を受け取ると、輝度Y0をメモリのY0領域に書き込み(S301)、輝度Y1をメモリのY1領域に書き込み(S302)、輝度Y2をメモリのY2領域に書き込み(S303)、輝度Y3をメモリのY3領域に書き込む(S304)。さらに、順序入れ換え部601は、色差Cb0をメモリのCb0領域に書き込み(S305)、色差Cb1をメモリのCb1領域に書き込み(S306)、色差Cb2をメモリのCb2領域に書き込み(S307)、色差Cb3をメモリのCb3領域に書き込む(S308)。さらに、順序入れ換え部601は、色差Cr0をメモリのCr0領域に書き込み(S309)、色差Cr1をメモリのCr1領域に書き込み(S310)、色差Cr2をメモリのCr2領域に書き込み(S311)、色差Cr3をメモリのCr3領域に書き込む(S312)。
 その結果、メモリ701の各領域には、図13に示すように係数情報が格納される。この場合、逆量子化部602は、メモリ701の各領域に格納されている複数の係数情報の配置どおりに、それらの係数情報を読み出し、それらの係数情報に対して逆量子化を行う。
 つまり、本実施の形態では、入れ換え部(順序入れ換え部601)は、第1の処理部(可変長復号部504)から出力された複数の色成分の順序と異なる順序で前記複数の色成分のそれぞれを記憶部(メモリ701)に順次書き込むことによって、複数の色成分の順序を入れ換え、第2の処理部(逆量子化部602)は、その記憶部に格納されている複数の色成分の順序にしたがって、複数の色成分のそれぞれを順次読み出してもよい。
 また、順序入れ換え部601が、可変長復号部504の直後であっても良いし、逆量子化部602の直後であっても良いし、逆周波数変換部506の直後であっても良いし、画像再構成部603の直後であっても良い。このように、順序入れ換え部601は、係数情報が受け渡しされる処理部のいずれかあるいは複数の部分に配置されればよい。
 (実施の形態2)
  (2-1.概要)
 次に、本実施の形態における画像処理装置の概要について説明する。実施の形態1における画像処理装置は、画像復号装置513として構成され、図6に示した可変長復号部504による処理以降で複数の係数情報の順序を入れ換える。これに対して、本実施の形態における画像処理装置は、入力される符号化ストリームに含まれる複数の係数情報の順序の入れ換えを、CUの復号前に行い、その結果生成される入れ換え済符号化ストリームに対して、CUの復号を含む復号処理を行う。
  (2-2.構成)
 次に、本実施の形態における画像処理装置の構成について説明する。
 図14は、本実施の形態における画像処理装置の構成を示すブロック図である。本実施の形態における画像処理装置は、ビットストリームバッファ604と、ストリーム変換部605と、画像復号装置513aとを備える。ビットストリームバッファ604は符号化ストリームを保持するためのメモリである。ストリーム変換部605は、ビットストリームバッファ604から符号化ストリームを読み出して、その符号化ストリームに含まれる複数の係数情報の順序を入れ換えることによって、入れ換え済符号化ストリームを生成する。そして、ストリーム変換部605は、その入れ換え済符号化ストリームを画像復号装置513aのビットストリームバッファ502に出力する。画像復号装置513は、実施の形態1の画像復号装置513に含まれる構成要素のうち、入れ換え逆量子化部505を除く全ての構成要素を備え、入れ換え逆量子化部505の代わりに逆量子化部602を備える。なお、本実施の形態では、実施の形態1と同一の構成要素については同一の符号を付し、詳細な説明を省略する。
 図15は、ストリーム変換部605の構成を示すブロック図である。
 ストリーム変換部605は、図15に示すとおり、可変長復号部606と、メモリ708と、順序入れ換え部601と、可変長符号化部607とを備える。
  (2-3.動作)
 次に、ストリーム変換部605の動作を説明する。
 図16は、ストリーム変換部605の処理動作を示すフローチャートである。ここでは、図10に示すように、複数の係数情報の順序を入れ換える例を説明する。
 可変長復号部606は、符号化ストリームをビットストリームバッファ604から読み出して、その符号化ストリームに対して可変長復号を行う(S401)。そして、可変長復号部606は、可変長復号された符号化ストリームを可変長復号ストリームとしてメモリ708に格納する。順序入れ換え部601は、メモリ708から可変長復号ストリームを読み出し、その可変長復号ストリームに対して係数情報の順序の入れ換えが必要か否かを判断する(S402)。すなわち、順序入れ換え部601は、可変長復号ストリームに含まれる64x64画素の画像データが、64x64画素のCUと、それぞれ32x32画素の4つのTUとで構成されている場合に、入れ換えが必要と判断する。そして、順序入れ換え部601は、入れ換えが必要と判断した際には(S402のYes)、複数の係数情報の順序を図11に示すフローにしたがって入れ換える(S403)。順序入れ換え部601は、この入れ換えによって入れ換え済可変長復号ストリームを生成して可変長符号化部607に出力する。可変長符号化部607は、入れ換え済可変長復号ストリームに対して可変長符号化を行う(S404)。可変長復号部606は、その画像データが符号化ストリームの終端の画像データか否かを判断し(S405)、符号化ストリームの終端でないと判断すると(S405のNo)、S401の処理を繰り返し実行する。
 このようなS401~S405の処理が繰り返し実行されることによって、ストリーム変換部605は、上述の入れ換え済符号化ストリームを生成して、画像復号装置513aのビットストリームバッファ502に出力する。なお、順序入れ換え部601は、可変長復号ストリームに含まれる情報のうち、係数情報以外の情報、つまり上述の符号化情報に対しては順序の入れ換えを行わず、その符号化情報を入れ換え済可変長復号ストリームに含めたまま出力する。
 図17は、画像復号装置513aの構成を他の観点から示すブロック図である。つまり、画像復号装置513aは、可変長復号部504、逆量子化部602、逆周波数変換部506、画像再構成部603、デブロックフィルタ部512、および4つのメモリ702~704,709を備える。なお、画像復号装置513aは、実施の形態1の画像復号装置513のメモリ701の代わりにメモリ709を備えている。メモリ709は、可変長復号部504から出力されるデータを格納する。
 ストリーム変換部605による上述の処理により、画像復号装置513aへ入力される符号化ストリームは、係数情報の順序が入れ換えられたものである。したがって、画像復号装置513aにおいて、図17に示すとおり、各処理部の間に必要なメモリ702~704,709の容量を削減することが可能となる。
 さらに、可変長符号化部607は、入れ換え済可変長復号ストリームを、元の符号化方式と異なる符号化方式で可変長符号化してもよい。例えば、元の可変長符号化の符号化方式、つまり符号化ストリームの符号化方式は、非特許文献1あるいは非特許文献2に示されているCABAC(Context-based Adaptive Binary Arithmetic Coding)である。この符号化方式は、非特許文献1あるいは非特許文献2に示されるCAVLC(Context Adaptive Variable Length Coding)と比較して、符号化効率が高い代わりに、処理が複雑である。そこで、ストリーム変換部605における可変長符号化部607は、入れ換え済可変長復号ストリームに対する符号化方式に、処理が容易な符号化方式(CAVLC)を採用することで、画像復号装置513aの可変長復号の処理負担を軽減することが可能になる。
 さらに、上記方法を用いた場合、ストリーム変換部605は、処理の複雑なCABAC方式によって符号化された符号化ストリームを高速に可変長復号および符号化し、入れ換え済符号化ストリームのデータを十分にビットストリームバッファ502へ蓄える。その後、画像復号装置513は処理の軽減された復号を行う。これにより、性能保証を容易に行うことができる。なお、画像復号装置513aは、実施の形態1における画像復号装置513から順序入れ換え部601を除いたものであり、従来と同様のパイプライン処理を行うため、ここではその処理動作の説明を省略する。
 このような本実施の形態では、第1の処理部は例えば可変長復号部606であり、入れ換え部は例えば順序入れ換え部601であり、第2の処理部は例えば可変長符号化部607である。つまり、本実施の形態では、第1の処理部は、可変長復号を第1の処理として行い、第1の処理単位に含まれる少なくとも1つの成分として色成分を順次出力し、入れ換え部は、第1の処理部から出力された複数の色成分の順序を入れ換える。そして、第2の処理部は、第2の処理に含まれる処理として可変長符号化を行う。なお、本実施の形態におけるストリーム変換部605を本発明の一態様に係る画像処理装置と称してもよい。
 また、本実施の形態では、画像処理装置は、さらに、第2の処理によって生成されるストリームに対して第3の処理を行うことによって、符号化ストリームを復号する第3の処理部を備える。この第3の処理部は例えば画像復号装置513aである。
  (2-4.効果)
 本実施の形態では、実施の形態1と同様、可変長復号の後に、メモリを用いて、係数情報の順序の入れ換えを行うことによって、画像復号装置513aのメモリ702~704の容量を削減することが可能である。また、CABACのように複雑な可変長符号化の符号化方式を用いて生成された符号化ストリームの場合、画像復号装置がその符号化ストリームに対してCABACにしたがった復号を行うと、復号の処理時間が大きくなり、画像復号装置の性能が低下することがある。しかし、本実施の形態では、画像復号装置513aに入力される前の符号化ストリーム(可変長復号ストリーム)の状態に基づいて、係数情報の順序を入れ換えるとともに、さらに、符号化ストリームを、より可変長復号しやすい符号化方式の入れ換え済符号化ストリームに変換する。これにより、画像復号装置513aの高性能化を可能にすると同時に、画像復号装置513aのメモリ(特に、メモリ709)の容量を削減することが可能となる。
  (なお書き)
 なお、本実施の形態においては、可変長符号を用いているが、ハフマン符号やランレングス符号、算術符号、あるいは固定長符号のように、どのような符号化方式を用いても構わない。
 また、各処理部の構成は、一部あるいは全てを専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
 また、フレームメモリ503、メモリ708、メモリ709、メモリ702、メモリ703、メモリ704は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
 また、順序入れ換え部601において用いられる、輝度Y、色差Cbおよび色差Crからなる処理単位(第2の処理単位)のサイズは、32x32画素(輝度Y、色差Cbおよび色差Crの合計1,536画素)のサイズに限定されるものではなく、それより小さなサイズや大きなサイズであってもよい。例えば、16x16画素(輝度Y、色差Cbおよび色差Crの合計384画素)のサイズであってもよい。つまり、符号化ストリームに含まれる、輝度Y、色差Cbおよび色差Crからなる入れ換え前の処理単位(第1の処理単位またはCU)が、輝度Y(32x32画素)、色差Cb(16x16画素)および色差Cr(16x16画素)からなる32x32画素単位で構成されている場合、順序入れ換え部601は、その符号化ストリームの複数の係数情報の順序を、16x16画素単位にしたがった順序に入れ換えてもよい。
 また、順序の入れ換えを、メモリからの読み出し時に行う例で示したが、これに限定されるものではない。例えば、図12に示すフローに従って、図13に示す通り、メモリへの書き込み時に、係数情報の順序の入れ換えを行った上で、読み出し時に順番に読み出す方法でも構わない。
 (実施の形態3)
  (3-1.概要)
 次に、本実施の形態における画像処理装置の概要について説明する。実施の形態2における画像処理装置は、入力される符号化ストリームに含まれる複数の係数情報の入れ換えを、CUの復号前に行い、その結果生成される入れ換え済符号化ストリームに対して、CUの復号を含む復号処理を行う。ここで、実施の形態2における画像処理装置は、入れ換え済符号化ストリームの生成の際、入れ換えられた順序の複数の係数情報のそれぞれに対する可変長符号化を逐次的に実行する。これに対して、本実施の形態では、その複数の係数情報のそれぞれに対する可変長符号化を並列に実行する。
  (3-2.構成)
 次に、本実施の形態における画像処理装置の構成について説明する。
 図18は、本実施の形態における画像処理装置の構成を示すブロック図である。本実施の形態における画像処理装置は、ビットストリームバッファ604と、ストリーム変換部608と、画像復号装置513aとを備える。なお、本実施の形態では、実施の形態1または2と同一の構成要素については同一の符号を付し、詳細な説明を省略する。
 つまり、本実施の形態における画像処理装置は、実施の形態2の画像処理装置に含まれる構成要素のうち、ストリーム変換部605を除く全ての構成要素を備え、そのストリーム変換部605の代わりに他のストリーム変換部608を備えている。このストリーム変換部608は、ストリーム変換部605と同様、ビットストリームバッファ604から符号化ストリームを読み出して、その符号化ストリームに含まれる複数の係数情報の順序を入れ換えることによって、入れ換え済符号化ストリームを生成する。そして、ストリーム変換部608は、その入れ換え済符号化ストリームを画像復号装置513aのビットストリームバッファ502に出力する。
 図19は、本実施の形態におけるストリーム変換部608の構成を示すブロック図である。ストリーム変換部608は、図19に示すとおり、可変長復号部606と、分割部609と、輝度Y用メモリ710と、色差Cb用メモリ711と、色差Cr用メモリ712と、符号化情報用メモリ713と、輝度Y用可変長符号化部611と、色差Cb用可変長符号化部612と、色差Cr用可変長符号化部613と、符号化情報用可変長符号化部614と、輝度Yストリーム用メモリ714と、色差Cbストリーム用メモリ715と、色差Crストリーム用メモリ716と、符号化情報ストリーム用メモリ717と、ストリーム再構成部610とを備える。
  (3-3.動作)
 次に、ストリーム変換部608の動作を説明する。
 可変長復号部606は、入力された符号化ストリームを可変長復号する。次に、分割部609は、その可変長復号によって生成された可変長復号ストリームを、輝度Yの係数情報と、色差Cbの係数情報と、色差Crの係数情報と、その他の符号化情報とに分割する。その他の符号化情報とは、CU種別、イントラ予測モード、動きベクトル情報、または量子化パラメータなどである。
 図20は、分割部609の処理動作を示すフローチャートである。まず、分割部609は、可変長復号ストリームのうちの一部の情報である復号済データを取得する(S501)。次に、分割部609は、その復号済データが係数情報であるか否かを判定する(S502)。ここで、分割部609は、係数情報でないと判定すると(S502のNo)、後述の符号化情報処理を行う(S503)。一方、分割部609は、係数情報であると判定すると(S502のYes)、さらに、その係数情報が輝度Yの係数情報であるか否かを判定する(S505)。ここで、分割部609は、輝度Yの係数情報であると判定すると(S505のYes)、輝度Y用メモリ710にその輝度Yの係数情報である復号済データを出力する(S508)。一方、分割部609は、輝度Yの係数情報でないと判定すると(S505のNo)、さらに、その係数情報が色差Cbの係数情報であるか否かを判定する(S506)。
 ここで、分割部609は、色差Cbの係数情報であると判定すると(S506のYes)、色差Cb用メモリ711にその色差Cbの係数情報である復号済データを出力する(S509)。一方、分割部609は、色差Cbの係数情報でないと判定すると(S506のNo)、その係数情報は色差Crの係数情報であるため、色差Cr用メモリ712にその色差Crの係数情報である復号済データを出力する(S507)。
 また、分割部609は、S503の処理を行った後、S501で取得された復号済データが可変長復号ストリームの終端のデータか否かを判定する(S504)。そして、分割部609は、終端のデータでないと判定すると(S504のNo)、または、S507~S509の何れかの処理が行われると、再び、S501の処理を実行する。つまり、分割部609は、可変長復号ストリームから次の復号済データを取得して、その復号済データに対してS502~S509の処理を実行する。
 次に、復号済データが係数情報でない場合、すなわち符号化情報である場合の動作について図21のフローチャートを用いて説明する。
 図21は、分割部609による符号化情報処理(S503)を示すフローチャートである。符号化情報は、輝度Y、色差Cbおよび色差Crのうちの少なくとも1つの符号化に必要な情報と、逆量子化以降の復号に必要な情報とに分類される。そこで、分割部609は、まず、上述の復号済データが輝度Y、色差Cbおよび色差Crの全ての符号化に必要な符号化情報かどうかを判定する(S601)。ここで、分割部609は、輝度Y、色差Cbおよび色差Crの全ての符号化に必要な符号化情報であると判定すると(S601のYes)、輝度Y用メモリ710と、色差Cb用メモリ711と、色差Cr用メモリ712とに、その符号化情報である復号済データを出力する(S605)。
 一方、分割部609は、輝度Y、色差Cbおよび色差Crの全ての符号化に必要な符号化情報ではないと判定すると(S601のNo)、さらに、上述の復号済データが輝度Yの符号化にのみ必要な符号化情報であるかどうかを判定する(S602)。ここで、分割部609は、輝度Yの符号化にのみ必要な符号化情報であると判定すると(S602のYes)、輝度Y用メモリ710に、その符号化情報である復号済データを出力する(S606)。
 一方、分割部609は、輝度Yの符号化にのみ必要な符号化情報ではないと判定すると(S602のNo)、さらに、上述の復号済データが色差Cbと色差Crの符号化にのみ必要な符号化情報であるかどうかを判定する(S603)。ここで、分割部609は、色差Cbと色差Crの符号化にのみ必要な符号化情報であると判定すると(S603のYes)、色差Cb用メモリ711と色差Cr用メモリ712のそれぞれに、その符号化情報である復号済データを出力する(S607)。
 一方、分割部609は、色差Cbと色差Crの符号化にのみ必要な符号化情報ではないと判定すると(S603のNo)、すなわち、その符号化情報が逆量子化以降の復号に必要な情報である場合、符号化情報用メモリ713にその符号化情報である復号済データを出力する(S604)。
 このように、分割部609から出力された複数の復号済データは、輝度Y用メモリ710と、色差Cb用メモリ711と、色差Cr用メモリ712と、符号化情報用メモリ713とのうちの少なくとも1つのメモリにそれぞれ分配される。以降の処理では、それぞれのメモリ上の情報を用いて可変長符号化が行われる。
 輝度Y用可変長符号化部611は、輝度Y用メモリ710から復号済データを読み出して、その復号済データに対して可変長符号化を行うことによって、輝度Yストリームを生成する。輝度Y用可変長符号化部611は、その輝度Yストリームを輝度Yストリーム用メモリ714に出力する。
 また、色差Cb用可変長符号化部612は、色差Cb用メモリ711から復号済データを読み出し、その復号済データに対して可変長符化を行うことによって、色差Cbストリームを生成する。色差Cb用可変長符号化部612は、その色差Cbストリームを色差Cbストリーム用メモリ715に出力する。
 また、色差Cr用可変長符号化部613は、色差Cr用メモリ712から復号済データを読み出し、その復号済データに対して可変長符化を行うことによって、色差Crストリームを生成する。色差Cr用可変長符号化部613は、その色差Crストリームを色差Crストリーム用メモリ716に出力する。
 また、符号化情報用可変長符号化部614は、符号化情報用メモリ713から復号済データを読み出し、その復号済データに対して可変長符化を行うことによって、符号化情報ストリームを生成する。符号化情報用可変長符号化部614は、その符号化情報ストリームを符号化情報ストリーム用メモリ717に出力する。
 以上に示した可変長符号化は、それぞれ独立して動作可能である。つまり、本実施の形態におけるストリーム変換部608は、実施の形態2において逐次行っていた可変長符号化を、並列に行うことが可能となる。
 図22は、可変長符号化の並列処理を説明するためのタイミングチャートである。このタイミングチャートは、輝度Y、色差Cbおよび色差Crと、その符号化に必要な符号化情報とがそれぞれ各メモリに格納された後の動作を示している。実施の形態2のストリーム変換部605は、図22の(a)に示すように、各係数情報に対して可変長符号化を逐次実行する。つまり、ストリーム変換部605の可変長符号化部607は、可変長符号化を逐次実行するため、輝度Y、色差Cbおよび色差Crを順にメモリ708から読み出して可変長符号化を行う。一方、本実施の形態におけるストリーム変換部608は、図22の(b)に示すように、各係数情報に対する可変長符号化を並列に実行する。つまり、本実施の形態では、輝度Y用可変長符号化部611、色差Cb用可変長符号化部612、および色差Cr用可変長符号化部613がそれぞれ独立して可変長符号化を行うことによって、可変長符号化の並列処理が実現される。その結果、本実施の形態では、図22の(a)および(b)によって示されているように、実施の形態2における逐次処理と比較して、可変長符号化の全体的な処理時間を大幅に削減することができる。
 ストリーム再構成部610は、輝度Yストリーム、色差Cbストリーム、色差Crストリーム、および符号化情報ストリームを、それぞれ輝度Yストリーム用メモリ714、色差Cbストリーム用メモリ715、色差Crストリーム用メモリ716、および符号化情報ストリーム用メモリ717から取り出す。なお、輝度Yストリームは、可変長符号化された輝度Yの複数の係数情報からなり、色差Cbストリームは、可変長符号化された色差Cbの複数の係数情報からなり、色差Crストリームは、可変長符号化された色差Crの複数の係数情報からなる。さらに、符号化情報ストリームは、可変長符号化された複数の符号化情報からなる。
 つまり、ストリーム再構成部610は、上記各メモリから各ストリームを取り出すときには、それぞれのストリームに含まれる情報(係数情報または符号化情報)をそれぞれ順次選択して取り出す。そして、ストリーム再構成部610は、情報が取り出される度に、取り出された係数情報または符号化情報を、その直前に取り出された係数情報または符号化情報に繋げることによって、入れ換え済符号化ストリームを生成する。この際、ストリーム再構成部610は、入れ換え済符号化ストリーム中の符号化情報の位置が、元の符号化ストリーム中の位置と同一になるように、つまり、元の符号化ストリーム中の順序どおりに、符号化情報を取り出す。また、ストリーム再構成部610は、上述のそれぞれのストリームに含まれる係数情報を図11に示したフローに従って取り出す。このような取り出し方を行うことによって、上述の入れ換え済符号化ストリームが生成される。
 このような本実施の形態では、第1の処理部は例えば可変長復号部606である。また、入れ換え部は、例えば、ストリーム変換部608のうちの可変長復号部606以外の構成要素群、つまり、分割部609、各可変長符号化部611~614、各メモリ710~717、およびストリーム再構成部610からなる。また、第2の処理部は例えば画像復号装置513aである。
 つまり、第1の処理部は、可変長復号を第1の処理として行い、第1の処理単位に含まれる少なくとも1つの成分として色成分を順次出力する。入れ換え部は、分割部609と、可変長符号化部と、ストリーム再構成部610とを備える。分割部609は、第1の処理部から出力された複数の色成分のそれぞれを、色成分の種類ごとに分類する。可変長符号化部は、例えば上記各可変長符号化部611~614からなり、色成分の種類ごとに、その種類に属する複数の色成分に対する可変長符号化を行い、その可変長符号化によって生成されるストリームを記憶部に格納する。記憶部は、例えば、上記各メモリ714~717である。ストリーム再構成部610は、記憶部に格納されている、色成分の種類ごとに生成されたストリームから、第1の処理部から出力された複数の色成分の順序とは異なる順序で、複数の色成分のそれぞれを順次読み出すことによって、複数の色成分の順序が入れ換えられた入れ換え済符号化ストリームを生成する。ここで、上述の可変長符号化部は、色成分の種類のそれぞれに対する可変長符号化を並列に行う。また、入れ換え済符号化ストリームは、第2の処理単位のサイズと同じサイズの符号化ユニットを含む。
  (3-4.効果)
 本実施の形態では、実施の形態2と同様、画像復号装置513aに入力される前の符号化ストリームに含まれる係数情報の順序を入れ換え、さらに、元の符号化方式よりも復号しやすい符号化方式の可変長符号化によって入れ換え済符号化ストリームを生成する。これにより、画像復号装置513aの高性能化を可能にすると同時に、画像復号装置513aのメモリの容量を削減することが可能である。さらに、本実施の形態では、可変長符号化を並列に実行するため、入れ換え済符号化ストリームの生成にかかる処理時間を短縮することが可能となる。
  (なお書き)
 なお、本実施の形態においては、可変長符号を用いているが、ハフマン符号やランレングス符号、算術符号、あるいは固定長符号のように、どのような符号化方式を用いても構わない。
 また、各処理部の構成は、一部あるいは全てを専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
 また、フレームメモリ503、輝度Y用メモリ710、色差Cb用メモリ711、色差Cr用メモリ712、符号化情報用メモリ713、輝度Yストリーム用メモリ714、色差Cbストリーム用メモリ715、色差Crストリーム用メモリ716、および符号化情報ストリーム用メモリ717は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
 また、ストリーム変換部608において用いられる、輝度Y、色差Cbおよび色差Crからなる処理単位(第2の処理単位)のサイズは、32x32画素(輝度Y、色差Cbおよび色差Crの合計1,536画素)のサイズに限定されるものではなく、それより小さなサイズや大きなサイズであってもよい。例えば、16x16画素(輝度Y、色差Cbおよび色差Crの合計384画素)のサイズであってもよい。つまり、符号化ストリームに含まれる、輝度Y、色差Cbおよび色差Crからなる入れ換え前の処理単位(第1の処理単位またはCU)が、輝度Y(32x32画素)、色差Cb(16x16画素)および色差Cr(16x16画素)からなる32x32画素単位で構成されている場合、ストリーム変換部608は、その符号化ストリームの複数の係数情報の順序を、16x16画素単位にしたがった順序に入れ換えてもよい。
 また、分割部609における処理は、図20と図21によって示される処理に限定されるものではない。
 また、本実施の形態では、分割部609は、複数の復号済データのそれぞれを、輝度Y用メモリ710、色差Cb用メモリ711、色差Cr用メモリ712、および符号化情報用メモリ713のうち、その復号済データに応じたメモリに格納していたが、これに限定することなく、共通のメモリに格納してもよい。
 また、本実施の形態では、3つの可変長符号化(輝度Yに対する可変長符号化と、色差Cbに対する可変長符号化と、色差Crに対する可変長符号化)を並列に行うことなく、2つの可変長符号化(輝度Yに対する可変長符号化と、色差Cbおよび色差Crに対する可変長符号化)を並列に行ってもよい。この場合、ストリーム変換部608は、色差Cb用メモリ711と色差Cr用メモリ613の代わりに、これらのメモリの機能を兼ね備えた共通の1つのメモリを備える。そして、分割部609は、複数の復号済データのうち、色差Cbおよび色差Crのそれぞれの係数情報をその共通の1つのメモリに格納する。
 また、本実施の形態では、符号化情報を、輝度Y、色差Cbおよび色差Crのうちの少なくとも1つの符号化に必要な情報と、逆量子化以降の復号に必要な情報とに分類し、輝度Y用メモリ710、色差Cb用メモリ711、および色差Cr用メモリ712のうち、その分類結果に応じたメモリに出力した。しかし、分類を行うことなく、符号化情報を、全ての輝度Y用メモリ710と、色差Cb用メモリ711と、色差Cr用メモリ712とに出力してもよい。この場合、各可変長符号化部611~613は、メモリの中から必要な符号化情報を選択して可変長符号化に利用すればよい。
 また、本実施の形態では、複数の復号済データを、輝度Y、色差Cbおよび
 (実施の形態4)
  (4-1.概要)
 次に、本実施の形態における画像処理装置の概要について説明する。実施の形態3における画像処理装置では、分割部609が、可変長復号ストリームを輝度Y、色差Cb、色差Crおよび符号化情報に分割して、それらの復号済データを各メモリに格納する。これに対して、本実施の形態では、分割することなく、可変長復号ストリームに、輝度Y、色差Cb、色差Cr、および符号化情報をそれぞれ識別するためのマーカを付加(挿入)する。これにより、容易にメモリの共通化を図ることができる。
  (4-2.構成)
 次に、本実施の形態における画像処理装置の構成について説明する。
 図23は、本実施の形態における画像処理装置の構成を示すブロック図である。本実施の形態における画像処理装置は、ビットストリームバッファ604と、ストリーム変換部615と、画像復号装置513aとを備える。なお、本実施の形態では、実施の形態1、2または3と同一の構成要素については同一の符号を付し、詳細な説明を省略する。
 つまり、本実施の形態における画像処理装置は、実施の形態3の画像処理装置に含まれる構成要素のうち、ストリーム変換部608を除く全ての構成要素を備え、そのストリーム変換部608の代わりに他のストリーム変換部615を備えている。このストリーム変換部615は、ストリーム変換部608と同様、ビットストリームバッファ604から符号化ストリームを読み出して、その符号化ストリームに含まれる複数の係数情報の順序を入れ換えることによって、入れ換え済符号化ストリームを生成する。そして、ストリーム変換部615は、その入れ換え済符号化ストリームを画像復号装置513aのビットストリームバッファ502に出力する。
 図24は、本実施の形態におけるストリーム変換部615の構成を示すブロック図である。ストリーム変換部615は、図24に示すとおり、可変長復号部606と、マーカ挿入部616と、マーカ挿入済ストリームメモリ722と、輝度Y用可変長符号化部617と、色差Cb用可変長符号化部618と、色差Cr用可変長符号化部619と、符号化情報用可変長符号化部620と、輝度Yストリーム用メモリ718と、色差Cbストリーム用メモリ719と、色差Crストリーム用メモリ720と、符号化情報ストリーム用メモリ721と、ストリーム再構成部621とを備える。
  (4-3.動作)
 次に、ストリーム変換部615の動作を説明する。
 可変長復号部606は、入力された符号化ストリームを可変長復号する。次に、マーカ挿入部616は、その可変長復号によって生成された可変長復号ストリームから、輝度Yの係数情報と、色差Cbの係数情報と、色差Crの係数情報と、その他の符号化情報とを識別して、それぞれに対するマーカを挿入する。
 図25は、マーカ挿入部616の処理動作を示すフローチャートである。まず、マーカ挿入部616は、可変長復号ストリームのうちの一部の情報である復号済データを取得する(S701)。次に、マーカ挿入部616は、その復号済データが係数情報であるか否かを判定する(S702)。ここで、マーカ挿入部616は、係数情報でないと判定すると(S702のNo)、その復号済データは符号化情報であるので、可変長復号ストリーム中のその符号化情報の直前に、符号化情報マーカを挿入する(S705)。一方、マーカ挿入部616は、係数情報であると判定すると(S702のYes)、後述する係数情報マーカ挿入処理を実行する(S703)。
 また、マーカ挿入部616は、S703またはS705の処理を行った後、S701で取得された復号済データが可変長復号ストリームの終端のデータか否かを判定する(S704)。そして、マーカ挿入部616は、終端のデータでないと判定すると(S704のNo)、再び、S701の処理を実行する。つまり、マーカ挿入部616は、可変長復号ストリームから次の復号済データを取得して、その復号済データに対してS702~S705の処理を実行する。
 図26は、マーカ挿入部616による係数情報マーカ挿入処理(S703)を示すフローチャートである。なお、符号化ストリーム(可変長復号ストリーム)では、図27の(a)に示すように、複数の係数情報は、輝度Y0、輝度Y1、輝度Y2、輝度Y3、色差Cb0、色差Cb1、色差Cb2、色差Cb3、色差Cr0、色差Cr1、色差Cr2、色差Cr3の順に配置されている。
 マーカ挿入部616は、まず、可変長復号ストリームから輝度Y0の係数情報を読み出し、その可変長復号ストリーム中のその係数情報の直前に、輝度Y0を示すマーカを挿入する(S801)。次に、マーカ挿入部616は、可変長復号ストリームから輝度Y1の係数情報を読み出し、その可変長復号ストリーム中のその係数情報の直前に、輝度Y1を示すマーカを挿入する(S802)。以下同様にして、各係数情報に対して、識別可能なマーカを順に挿入する(S803~S812)。
 図27は、可変長復号ストリームに対するマーカの挿入を説明するための図である。
 マーカ挿入部616は、図27の(a)に示す可変長復号ストリームに対して上述の処理動作を行い、その結果、図27の(b)に示す、マーカが挿入された可変長復号ストリームであるマーカ挿入済ストリームを生成する。このマーカ挿入済ストリームでは、係数情報ごとに、その係数情報の直前に、その係数情報を識別するためのマーカが挿入されている。そして、マーカ挿入部616は、そのマーカ挿入済ストリームをマーカ挿入済ストリームメモリ722に格納する。
 次に、輝度Y用可変長符号化部617は、マーカ挿入済ストリームから、マーカに従って、輝度Yの符号化に必要な復号済データを取り出し、その復号済データに対して可変長符号化を行う。輝度Y用可変長符号化部617は、このような可変長符号化を繰り返すことによって輝度Yストリームを生成し、その輝度Yストリームを輝度Yストリーム用メモリ718に出力する。
 また、色差Cb用可変長符号化部618は、マーカ挿入済ストリームから、マーカに従って、色差Cbの符号化に必要な復号済データを取り出し、その復号済データに対して可変長符号化を行う。色差Cb用可変長符号化部618は、このような可変長符号化を繰り返すことによって色差Cbストリームを生成し、その色差Cbストリームを色差Cbストリーム用メモリ719に出力する。同様に、色差Cr用可変長符号化部619は、マーカ挿入済ストリームから、マーカに従って、色差Crの符号化に必要な復号済データを取り出し、その復号済データに対して可変長符号化を行う。色差Cr用可変長符号化部619は、このような可変長符号化を繰り返すことによって、色差Crストリームを生成し、その色差Crストリームを色差Crストリーム用メモリ720に出力する。
 また、符号化情報用可変長符号化部620は、マーカ挿入済ストリームから、マーカに従って、符号化情報の符号化に必要な復号済データを取り出し、その復号済データに対して可変長符号化を行う。符号化情報用可変長符号化部620は、このような可変長符号化を繰り返すことによって、符号化情報ストリームを生成し、その符号化情報ストリームを符号化情報ストリーム用メモリ721に出力する。
 以上に示した可変長符号化は、実施の形態3と同様、それぞれ独立して実行可能である。ただし、本実施の形態では、各ストリーム(輝度Yストリーム、色差Cbストリーム、色差Crストリームおよび符号化情報ストリーム)には、マーカが残されている。
 次に、ストリーム再構成部621は、マーカに基づいて、輝度Yストリーム、色差Cbストリーム、色差Crストリーム、および符号化情報ストリームを、それぞれ輝度Yストリーム用メモリ718、色差Cbストリーム用メモリ719、色差Crストリーム用メモリ720、および符号化情報ストリーム用メモリ721から取り出す。なお、輝度Yストリームは、可変長符号化された輝度Yの複数の係数情報とそれらに対するマーカとからなり、色差Cbストリームは、可変長符号化された色差Cbの複数の係数情報とそれらに対するマーカとからなり、色差Crストリームは、可変長符号化された色差Crの複数の係数情報とそれらに対するマーカとからなる。さらに、符号化情報ストリームは、可変長符号化された複数の符号化情報とそれらに対するマーカとからなる。
 つまり、ストリーム再構成部621は、上記各メモリから各ストリームを取り出すときには、それぞれのストリームに含まれる情報(係数情報または符号化情報)を、それらの情報に対して挿入されたマーカに基づいて、それぞれ順次選択して取り出す。そして、ストリーム再構成部621は、情報が取り出される度に、取り出された係数情報または符号化情報を、その直前に取り出された係数情報または符号化情報に繋げることによって、入れ換え済符号化ストリームを生成する。この際、ストリーム再構成部621は、入れ換え済符号化ストリーム中の符号化情報の位置が、元の符号化ストリーム中の位置と同一になるように、つまり、元の符号化ストリーム中の順序どおりに、符号化情報を取り出す。また、ストリーム再構成部621は、上述のそれぞれのストリームに含まれる係数情報を図11に示したフローに従って取り出す。このような取り出し方を行うことによって、上述の入れ換え済符号化ストリームが生成される。本実施の形態では、この際、マーカが取り除かれる。
 このような本実施の形態では、第1の処理部は例えば可変長復号部606である。また、入れ換え部は、例えば、ストリーム変換部615のうちの可変長復号部606以外の構成要素群、つまり、マーカ挿入部616、各可変長符号化部617~620、各メモリ718~722、およびストリーム再構成部621からなる。また、第2の処理部は例えば画像復号装置513aである。
 つまり、第1の処理部は、可変長復号を第1の処理として行い、第1の処理単位に含まれる少なくとも1つの成分として色成分を順次出力する。入れ換え部は、マーカ挿入部616と、可変長符号化部と、ストリーム再構成部621とを備える。マーカ挿入部616は、第1の処理部から出力された複数の色成分のそれぞれに対して、その色成分の種類を識別するためのマーカを付加する。可変長符号化部は、例えば上記各可変長符号化部617~620からなり、マーカ挿入部616によって付加されたマーカに基づいて、第1の処理部から出力された複数の色成分のそれぞれの種類を識別し、色成分の種類ごとに、その種類に属する複数の色成分に対する可変長符号化を行い、可変長符号化によって生成されるストリームを記憶部に格納する。記憶部は、例えば、上記各メモリ718~721である。ストリーム再構成部621は、記憶部に格納されている、色成分の種類ごとに生成されたストリームから、第1の処理部から出力された複数の色成分の順序とは異なる順序で、複数の色成分を順次読み出すことによって、複数の色成分の順序が入れ換えられた入れ換え済符号化ストリームを生成する。ここで、上述の可変長符号化部は、色成分の種類のそれぞれに対する可変長符号化を並列に行う。
  (4-4.効果)
 本実施の形態では、実施の形態3と同様、画像復号装置513aに入力される前の符号化ストリームに含まれる係数情報の順序を入れ換え、さらに、元の符号化方式よりも復号しやすい符号化方式の可変長符号化によって入れ換え済符号化ストリームを生成する。これにより、画像復号装置513aの高性能化を可能にすると同時に、画像復号装置513aのメモリの容量を削減することが可能である。また、本実施の形態では、実施の形態3と同様、可変長符号化を並列に実行するため、入れ換え済符号化ストリームの生成にかかる処理時間を短縮することが可能となる。
 さらに、本実施の形態では、輝度Y、色差Cb、色差Cr、および符号化情報を識別するためのマーカを挿入することで、それらを一連のデータとして、メモリに格納することが可能となる。また、メモリ資源の共通化を図ることができる。これにより、輝度Y、色差Cb、色差Cr、および符号化情報を個別にメモリに格納する場合よりも、メモリの管理および制御を簡略化し、可変長符号化に係る処理を並列実行する際の性能を向上させることが可能となる。これにより、入れ換え済符号化ストリームの生成にかかる処理時間をさらに短縮し、画像処理装置の高性能化を可能にし、画像処理装置のメモリの容量を削減することが可能となる。
  (なお書き)
 なお、本実施の形態においては、可変長符号を用いているが、ハフマン符号やランレングス符号、算術符号、あるいは固定長符号のように、どのような符号化方式を用いても構わない。
 また、各処理部の構成は、一部あるいは全てを専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
 また、フレームメモリ503、輝度Yストリーム用メモリ718、色差Cbストリーム用メモリ719、色差Crストリーム用メモリ720、符号化情報ストリーム用メモリ721、およびマーカ挿入済ストリームメモリ722は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
 また、ストリーム変換部615において用いられる、輝度Y、色差Cbおよび色差Crからなる処理単位(第2の処理単位)のサイズは、32x32画素(輝度Y、色差Cbおよび色差Crの合計1,536画素)のサイズに限定されるものではなく、それより小さなサイズや大きなサイズであってもよい。例えば、16x16画素(輝度Y、色差Cbおよび色差Crの合計384画素)のサイズであってもよい。つまり、符号化ストリームに含まれる、輝度Y、色差Cbおよび色差Crからなる入れ換え前の処理単位(第1の処理単位またはCU)が、輝度Y(32x32画素)、色差Cb(16x16画素)および色差Cr(16x16画素)からなる32x32画素単位で構成されている場合、ストリーム変換部615は、その符号化ストリームの複数の係数情報の順序を、16x16画素単位にしたがった順序に入れ換えてもよい。
 また、マーカ挿入部616における処理は、図25と図26によって示される処理に限定されるものではない。
 また、符号化情報を、輝度Y、色差Cb、および色差Crのうちの少なくとも1つの符号化に必要な情報と、逆量子化以降の復号に必要な情報とに分類し、マーカを挿入してもよい。
 また、上述の各マーカは、それぞれの情報が識別可能な値であればよく、規格上利用されていない数値列や、情報のビット幅を示すもの等であってもよい。
 また、本実施の形態では、3つの可変長符号化(輝度Yに対する可変長符号化と、色差Cbに対する可変長符号化と、色差Crに対する可変長符号化)を並列に行うことなく、2つの可変長符号化(輝度Yに対する可変長符号化と、色差Cbおよび色差Crに対する可変長符号化)を並列に行ってもよい。この場合、マーカ挿入部616は、複数の復号済データのうち、色差Cbおよび色差Crのそれぞれの係数情報(復号済データ)に対して共通のマーカを挿入してもよい。
 (実施の形態5)
  (5-1.概要)
 次に、本実施の形態における画像処理装置の概要について説明する。実施の形態4における画像処理装置では、マーカ挿入部616によって挿入されたマーカにしたがって、各可変長符号化部が並列に動作する。そして、ストリーム再構成部621によってマーカが削除され、画像復号装置513aは、マーカが挿入されていない入れ換え済符号化ストリームに対して復号処理を逐次実行する。これに対して、本実施の形態では、ストリーム再構成部によってマーカは除去されず、画像復号装置は、マーカが挿入された入れ換え済符号化ストリームに対して復号処理を並列に行う。
  (5-2.構成)
 次に、本実施の形態における画像処理装置の構成について説明する。
 図28は、本実施の形態における画像処理装置の構成を示すブロック図である。本実施の形態における画像処理装置は、ビットストリームバッファ604と、入力された符号化ストリームに、輝度Y、色差Cb、色差Crおよび符号化情報を識別するためのマーカを挿入するストリーム変換部622と、画像復号装置650とを備える。なお、本実施の形態では、実施の形態1~4と同一の構成要素については同一の符号を付し、詳細な説明を省略する。
 図29は、本実施の形態におけるストリーム変換部622の構成を示すブロック図である。ストリーム変換部622は、図29に示すとおり、可変長復号部606と、マーカ挿入部616と、マーカ挿入済ストリームメモリ722と、輝度Y用可変長符号化部617と、色差Cb用可変長符号化部618と、色差Cr用可変長符号化部619と、符号化情報用可変長符号化部620と、輝度Yストリーム用メモリ718と、色差Cbストリーム用メモリ719と、色差Crストリーム用メモリ720と、符号化情報ストリーム用メモリ721と、ストリーム再構成部623とを備える。
 つまり、本実施の形態におけるストリーム変換部622は、実施の形態4のストリーム変換部615に含まれる構成要素のうち、ストリーム再構成部621を除く全ての構成要素を備え、そのストリーム再構成部621の代わりに他のストリーム再構成部623を備えている。このストリーム再構成部623は、ストリーム再構成部621と同様、各メモリ718~721から情報(係数情報または符号化情報)を取り出すが、その情報だけでなく、その情報に対応するマーカも取り出す。そして、ストリーム再構成部623は、例えば、図27の(b)に示すような、複数のマーカと複数の情報とを含むマーカ挿入済符号化ストリームを生成する。
 画像復号装置650は、ビットストリームバッファ520と、可変長復号部640と、逆量子化部641と、動きベクトル算出部642と、動き補償部643と、逆周波数変換部644と、イントラ予測部645と、制御部501と、フレームメモリ503と、再構成部511と、デブロックフィルタ部512とを備える。
 ビットストリームバッファ520は、ストリーム変換部622から出力されるマーカ挿入済符号化ストリームを保持する。可変長復号部640は、ビットストリームバッファ520からマーカ挿入済符号化ストリームを読み出し、そのマーカ挿入済符号化ストリームに含まれる輝度Yと、色差Cbおよび色差Crとに対する可変長復号を並列に行う。逆量子化部641は、輝度Yの可変長復号結果(量子化値)と、色差Cbおよび色差Crの可変長復号結果とに対する逆量子化を並列に行う。逆周波数変換部644は、輝度Yの逆量子化結果(周波数係数)と、色差Cbおよび色差Crの逆量子化結果とに対する逆周波数変換を並列に行う。
 動きベクトル算出部642は、マーカ挿入済符号化ストリームに含まれる輝度Yと、色差Cbおよび色差Crとに対する動きベクトルの算出を並列に行う。動き補償部643は、輝度Yと、色差Cbおよび色差Crとに対する動き補償を並列に行う。イントラ予測部645は、輝度Yと、色差Cbおよび色差Crとに対するイントラ予測を逐次行う。
 つまり、本実施の形態の画像復号装置650では、可変長復号部640、逆量子化部641、逆周波数変換部644、動きベクトル算出部642、および動き補償部643のそれぞれが、輝度Yと、色差Cbおよび色差Crとに対して並列に処理を実行する点が、実施の形態2~4の画像復号装置513aと異なる。
 図30は、画像復号装置650における可変長復号部640、逆量子化部641、逆周波数変換部644、動きベクトル算出部642および動き補償部643の構成を示す図である。可変長復号部640は、輝度可変長復号部624と色差可変長復号部625とを備える。逆量子化部641は、輝度逆量子化部626と色差逆量子化部627とを備える。逆周波数変換部644は、輝度逆周波数変換部628と、色差逆周波数変換部629と、輝度用メモリ727と、色差用メモリ728と、係数再構成部630とを備える。動きベクトル算出部642は、輝度動きベクトル算出部631と色差動きベクトル算出部632とを備える。動き補償部643は、輝度動き補償部633と、色差動き補償部634と、動き補償再構成部635とを備える。
 図31は、画像復号装置650におけるイントラ予測部645の構成を示す図である。イントラ予測部645は、図31に示すとおり、輝度イントラ予測部636と、イントラ予測画像メモリ729と、色差イントラ予測部637とを備える。
 なお、各処理部間は、それぞれメモリを介して接続されている。つまり、可変長復号部640と逆量子化部641とは、輝度用メモリ723および色差用メモリ724を介して接続されている。さらに、逆量子化部641と逆周波数変換部644とは、輝度用メモリ725および色差用メモリ726を介して接続されている、なお、これらのメモリ723~726は画像復号装置650に備えられている。
  (5-3.動作)
 次に、図28に示した画像処理装置の動作を説明する。なお、符号化ストリーム(可変長復号ストリーム)では、図27の(a)に示すように、複数の係数情報は、輝度Y0、輝度Y1、輝度Y2、輝度Y3、色差Cb0、色差Cb1、色差Cb2、色差Cb3、色差Cr0、色差Cr1、色差Cr2、色差Cr3の順に配置されている。
 まず、ストリーム変換部622の動作を、図29を用いて説明する。実施の形態4と同様に、ストリーム変換部622のマーカ挿入部616は、輝度Yの係数情報と、色差Cbの係数情報と、色差Crの係数情報と、その他の符号化情報とを識別して、それぞれに対してマーカを挿入する。さらに、可変長符号化部617~620はそれぞれ、上述の各情報に対して並列に可変長符号化を行う。その結果、それらの情報に対する可変長符号化によって生成されたストリームはそれぞれ、輝度Yストリーム用メモリ718と、色差Cbストリーム用メモリ719と、色差Crストリーム用メモリ720と、符号化情報ストリーム用メモリ721のうち、そのストリームに対応するメモリに出力される。
 次に、ストリーム再構成部623は、マーカに基づいて、輝度Yストリーム、色差Cbストリーム、色差Crストリーム、および符号化情報ストリームを、それぞれ輝度Yストリーム用メモリ718、色差Cbストリーム用メモリ719、色差Crストリーム用メモリ720、および符号化情報ストリーム用メモリ721から取り出す。つまり、ストリーム再構成部623は、上記各メモリから各ストリームを取り出すときには、それぞれのストリームに含まれる情報(係数情報または符号化情報)を、それらの情報に対して挿入されたマーカに基づいて、それぞれ順次選択して取り出す。そして、ストリーム再構成部621は、情報が取り出される度に、取り出された係数情報または符号化情報を、その直前に取り出された係数情報または符号化情報に繋げることによって、マーカ挿入済符号化ストリームを生成する。この際、ストリーム再構成部623は、マーカ挿入済符号化ストリーム中の符号化情報の位置が、元の符号化ストリーム中の位置と同じ位置になるように、つまり、元の符号化ストリーム中の順序どおりに、符号化情報を取り出す。また、ストリーム再構成部623は、上述のそれぞれのストリームに含まれる係数情報を図11に示したフローに従って取り出す。このような取り出し方を行うことによって、上述のマーカ挿入済符号化ストリームが生成される。
 ただし、本実施の形態のストリーム再構成部623は、情報(係数情報または符号化情報)を取り出すときには、その情報に対して挿入されているマーカもその情報とともに取り出す。つまり、実施の形態4では、ストリーム再構成部から出力されるストリームでは、マーカが取り除かれていたが、本実施の形態ではマーカがある。
 これにより、マーカ挿入済符号化ストリームでは、複数のマーカと複数の係数情報とが、輝度Y0のマーカ、輝度Y0、色差Cb0のマーカ、色差Cb0、色差Cr0のマーカ、色差Cr0、輝度Y1のマーカ、輝度Y1、色差Cb1のマーカ、色差Cb1、色差Cr1のマーカ、色差Cr1、輝度Y2のマーカ、輝度Y2、色差Cb2のマーカ、色差Cb2、色差Cr2のマーカ、色差Cr2、輝度Y3のマーカ、輝度Y3、色差Cb3のマーカ、色差Cb3、色差Cr3のマーカ、色差Cr3の順に配置されている。そして、このようなマーカ挿入済符号化ストリームがビットストリームバッファ520へ出力される。
 次に、画像復号装置650の動作を説明する。まず、可変長復号部640と、逆量子化部641と、逆周波数変換部644と、動きベクトル算出部642と、動き補償部643の動作を、図30を用いて説明する。可変長復号部640と、逆量子化部641と、逆周波数変換部644とは、輝度および色差のそれぞれに対する処理部を持つ。輝度用の処理部のそれぞれは、実施の形態1に示す可変長復号、逆量子化、および逆周波数変換を、輝度に対して実行し、色差用の処理部のそれぞれは、実施の形態1に示す可変長復号、逆量子化、および逆周波数変換を、色差に対して実行する。そして、輝度用の処理部と色差用の処理部は並列に処理を実行する。
 具体的には、可変長復号部640では、輝度可変長復号部624がマーカ挿入済符号化ストリーム内の輝度の係数情報に対して可変長符号化を行い、その可変長符号化された係数情報(輝度の量子化値)を輝度用メモリ723に格納する。そして、輝度可変長復号部624による処理と並行して、色差可変長復号部625がマーカ挿入済符号化ストリーム内の色差の係数情報に対して可変長符号化を行い、その可変長符号化された係数情報(色差の量子化値)を色差用メモリ724に格納する。
 逆量子化部641では、輝度逆量子化部626が、輝度用メモリ723から輝度の量子化値である係数情報を取得して逆量子化し、その逆量子化された係数情報(輝度の周波数係数)を輝度用メモリ725に格納する。そして、輝度逆量子化部626による処理と並行して、色差逆量子化部627が、色差用メモリ724から色差の量子化値である係数情報を取得して逆量子化し、その逆量子化された係数情報(色差の周波数係数)を色差用メモリ726に格納する。
 逆周波数変換部644では、輝度逆周波数変換部628が、輝度用メモリ725から輝度の周波数係数である係数情報を取得して逆周波数変換し、その逆周波数変換された係数情報(輝度の画素値)を輝度用メモリ727に格納する。そして、輝度逆周波数変換部628による処理と並行して、色差逆周波数変換部629が、色差用メモリ726から色差の周波数係数である係数情報を取得して逆周波数変換し、その逆周波数変換された係数情報(色差の画素値)を色差用メモリ728に格納する。
 次に、係数再構成部630は、図11のフローにしたがって、輝度用メモリ727および色差用メモリ728から、輝度および色差の画素値である係数情報を取り出す。この際、係数再構成部630は、ストリーム変換部622で挿入されたマーカを取り除く。これにより、以降の処理は図10の(b)に示す単位で実行される。
 動きベクトル算出部642では、輝度動きベクトル算出部631が輝度の係数情報に対する動きベクトルを実施の形態1と同様に算出する。そして、輝度動きベクトル算出部631による処理と並行して、色差動きベクトル算出部632が色差の係数情報に対する動きベクトルを実施の形態1と同様に算出する。
 動き補償部643では、輝度動き補償部633が輝度の係数情報に対する動き補償を実施の形態1と同様に行う。そして、輝度動き補償部633による処理と並行して、色差動き補償部634が色差の係数情報に対する動き補償を実施の形態1と同様に行う。動き補償再構成部635は、図10の(b)に示す係数情報の順と対応する順に、輝度動き補償部633および色差動き補償部634の動き補償によって生成された情報(動き補償情報)を並べ換える。
 次に、イントラ予測部645の動作を、図31を用いて説明する。輝度イントラ予測部636は、再構成部511から出力される復号画像と、イントラ予測に必要なパラメータとを用いて、輝度画像のイントラ予測を行い、その予測結果であるイントラ予測画像をイントラ予測画像メモリ729に出力する。次に、色差イントラ予測部637は、イントラ予測画像メモリ729に格納されている輝度のイントラ予測画像を参照し、色差画像のイントラ予測を行う。
 このような本実施の形態では、第1の処理部は例えば可変長復号部606である。また、入れ換え部は、例えば、ストリーム変換部622のうちの可変長復号部606以外の構成要素群、つまり、マーカ挿入部616、各可変長符号化部617~620、各メモリ718~722、およびストリーム再構成部623からなる。また、第2の処理部は例えば画像復号装置650である。
 つまり、本実施の形態では、ストリーム再構成部623は、複数の色成分のそれぞれに対して付加されたマーカとともに複数の色成分を順次読み出すことによって、複数の色成分のそれぞれに対してマーカが付加された入れ換え済符号化ストリームを生成する。そして、第2の処理部である画像復号装置636は、可変長復号部640と、逆量子化部641と、逆周波数変換部と、成分再構成部とを備える。可変長復号部640は、入れ換え済符号化ストリームに含まれる複数の前記マーカに基づいて、色成分の種類ごとに、その種類に属する複数の色成分に対する可変長復号を行う。逆量子化部641は、色成分の種類ごとに、その種類に属する可変長復号された複数の色成分に対する逆量子化を行う。逆周波数変換部は、例えば輝度逆周波数変換部628および色差逆周波数変換部629からなり、色成分の種類ごとに、その種類に属する逆量子化された複数の色成分に対する逆周波数変換を行うことによって、複数のマーカを含む色成分データを生成する。また、成分再構成部は、例えば係数再構成部630であり、色成分の種類ごとに生成された色成分データを、色成分データに含まれる複数のマーカに基づいて識別し、入れ換え部によって入れ換えられた順序どおりに、逆周波数変換された複数の色成分が配列するように、複数の色成分を再構成する。ここで、上述の可変長復号部640、逆量子化部641、および逆周波数変換部628,629はそれぞれ、色成分の種類のそれぞれに対する処理を並列に行う。
  (5-4.効果)
 本実施の形態では、実施の形態4と同様、符号化情報、輝度Yの係数情報、色差Cbの係数情報、色差Crの係数情報を識別するためのマーカに基づいて、ストリーム変換部における可変長符号化処理を並列実行することで、メモリの容量の削減と、ストリーム変換部および画像処理装置を高性能化することができる。さらに、本実施の形態では、画像復号装置650における可変長復号、逆量子化、逆周波数変換、動きベクトルの算出、および動き補償のそれぞれの処理において、輝度に対する処理と、色差別に対する処理とを並列に実行することで、処理効率および性能を向上することができる。また、再構成部511までに、輝度の係数情報と色差の係数情報との同期を取ることで、輝度と色差の処理に依存関係があるイントラ予測を適切に処理することが可能となる。
  (なお書き)
 なお、本実施の形態においては、可変長符号を用いているが、ハフマン符号やランレングス符号、算術符号、あるいは固定長符号のように、どのような符号化方式を用いても構わない。
 また、フレームメモリ503、輝度Yストリーム用メモリ718、色差Cbストリーム用メモリ719、色差Crストリーム用メモリ720、符号化情報ストリーム用メモリ721、マーカ挿入済ストリームメモリ722、輝度用メモリ723、色差用メモリ724、輝度用メモリ725、色差用メモリ726、輝度用メモリ727、色差用メモリ728、およびイントラ予測画像メモリ729は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
 また、ストリーム変換部622において用いられる、輝度Y、色差Cbおよび色差Crからなる処理単位(第2の処理単位)のサイズは、32x32画素(輝度Y、色差Cbおよび色差Crの合計1,536画素)のサイズに限定されるものではなく、それより小さなサイズや大きなサイズであってもよい。例えば、16x16画素(輝度Y、色差Cbおよび色差Crの合計384画素)のサイズであってもよい。つまり、符号化ストリームに含まれる、輝度Y、色差Cbおよび色差Crからなる入れ換え前の処理単位(第1の処理単位またはCU)が、輝度Y(32x32画素)、色差Cb(16x16画素)および色差Cr(16x16画素)からなる32x32画素単位で構成されている場合、ストリーム変換部622は、その符号化ストリームの複数の係数情報の順序を、16x16画素単位にしたがった順序に入れ換えてもよい。
 また、符号化情報を、輝度Y、色差Cb、および色差Crのうちの少なくとも1つの符号化に必要な情報と、逆量子化以降の復号に必要な情報とに分類し、マーカを挿入してもよい。
 また、上述の各マーカは、それぞれの情報が識別可能な値であればよく、規格上利用されていない数値列や、情報のビット幅を示すもの等であってもよい。
 また、輝度に対する処理と色差に対する処理とを分離して並列に実行したが、この粒度を限定するものではない。例えば、輝度Y、色差Cbおよび色差Crを分離して並列に実行してもよい。あるいは、輝度Y0、輝度Y1、輝度Y2、輝度Y3、色差Cb0、色差Cb1、色差Cb2、色差Cb3、色差Cr0、色差Cr1、色差Cr2、および色差Cr3を分離して、並列に実行してもよい。
 また、本実施の形態では、3つの可変長符号化(輝度Yに対する可変長符号化と、色差Cbに対する可変長符号化と、色差Crに対する可変長符号化)を並列に行うことなく、2つの可変長符号化(輝度Yに対する可変長符号化と、色差Cbおよび色差Crに対する可変長符号化)を並列に行ってもよい。この場合、マーカ挿入部616は、複数の復号済データのうち、色差Cbおよび色差Crのそれぞれの係数情報(復号済データ)に対して共通のマーカを挿入してもよい。
 なお、上記実施の形態2~5では、画像復号装置、ストリーム変換部およびビットストリームバッファを含む装置を画像処理装置と称したが、この画像処理装置を画像復号装置と称して扱ってもよい。
 また、上記実施の形態1~5では、図1Aまたは図10の(a)に示すように、64x64画素サイズのCU内で、32x32画素サイズの輝度Yが4つ連続して並び、16x16画素サイズの色差Cbが4つ連続して並び、16x16画素サイズの色差Crが4つ連続して並んでいる符号化ストリームに対して、上述のような係数情報の入れ換えを行う。しかし、入れ換えの対象となる符号化ストリームは、このような構成のものに限らない。例えば、64x64画素サイズのCU内であっても、図10の(b)に示すように、32x32画素サイズの輝度Y、16x16画素サイズの色差Cb、および16x16画素サイズの色差Crを含む処理単位(TU)が4つ連続して並んでいる符号化ストリームに対しても、上述のような係数情報の入れ換えを行ってもよい。この場合、上述の処理単位(TU)内において係数情報の入れ換えが行われる。このような入れ換えは、例えば、図6に示す逆周波数変換部506による処理と、画像再構成部603による処理との間で行われる。
 (実施の形態6)
 上記各実施の形態で示した画像処理化方法および画像復号方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
 さらに、ここで、上記各実施の形態で示した画像処理方法および画像復号方法の応用例とそれを用いたシステムを説明する。
 図32は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex107~ex110が設置されている。
 このコンテンツ供給システムex100では、電話網ex104および基地局ex107~ex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114などの各機器が相互に接続される。また、各機器が、インターネットサービスプロバイダex102を介して、インターネットex101に接続されている。
 しかし、コンテンツ供給システムex100は、図32のような構成に限定されず、いずれかの要素を組み合せて接続するようにしてもよい。また、固定無線局である基地局ex107~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等がある。配信されたデータを受信した各機器では、受信したデータを復号処理して再生する。
 なお、撮影したデータの符号化処理は、カメラ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の例に限らず、図33に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも画像処理装置または画像復号装置のいずれかを組み込むことができる。具体的には、放送局ex201では映像情報のビットストリームが電波を介して通信または衛星ex202に伝送される。このビットストリームは、上記各実施の形態で説明した画像処理方法により処理される符号化ビットストリームである。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信したビットストリームを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号して再生する。
 また、記録媒体であるCDおよびDVD等の記録メディアex214に記録したビットストリームを読み取り、復号する再生装置ex212にも上記実施の形態で示した画像復号装置または画像処理装置を実装することが可能である。この場合、再生された映像信号はモニタex213に表示される。
 また、DVD、BD等の記録メディアex215に記録した符号化ビットストリームを読み取り復号する、または、記録メディアex215に映像信号を符号化し書き込むリーダ/レコーダex218にも上記各実施の形態で示した画像復号装置または画像処理装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、符号化ビットストリームが記録された記録メディアex215により他の装置およびシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に画像復号装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に画像復号装置を組み込んでもよい。
 図34は、上記各実施の形態で説明した画像復号方法を用いたテレビ(受信機)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の構成を図35に示す。情報再生/記録部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はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
 図36に光ディスクである記録メディア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の構成は例えば図34に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111および携帯電話ex114等でも考えられる。また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器および復号器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号器のみの受信端末という3通りの実装形式が考えられる。
 このように、上記各実施の形態で示した画像処理方法あるいは画像復号方法を上述したいずれの機器またはシステムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
 また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
 (実施の形態7)
 本実施の形態では、実施の形態1に示した画像復号装置を、典型的には半導体集積回路であるLSIとして実現する。実現した形態を図37に示す。ビットストリームバッファ502およびフレームメモリ503をDRAM上に実現し、その他の回路やメモリをLSI上に構成している。
 これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されても良い。ここではLSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
 また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)、または、LSI内部の回路セルの接続および設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
 さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適応などが可能性として有り得る。
 さらに加えて、本実施の形態の画像復号装置を集積化した半導体チップと、画像を描画するためのディスプレイとを組み合せて、様々な用途に応じた描画機器を構成することができる。携帯電話、テレビ、デジタルビデオレコーダー、デジタルビデオカメラおよびカーナビゲーション等における情報描画手段として、本発明を利用することが可能である。ディスプレイとしては、ブラウン管(CRT)の他、液晶、PDP(プラズマディスプレイパネル)および有機ELなどのフラットディスプレイ、プロジェクターを代表とする投射型ディスプレイなどと組み合わせることが可能である。
 また、本実施の形態におけるLSIは、システムLSIはDRAM(Dynamic Random Access Memory)と連携することにより、符号化処理または復号処理を行ってもよい。また、本実施の形態におけるLSIは、DRAMではなく、eDRAM(embeded DRAM)、SRAM(Static Random Access Memory)、または、ハードディスクなど他の記憶装置と連携しても構わない。
 (実施の形態8)
 上記各実施の形態で示した画像処理装置、画像復号装置、画像処理方法および画像復号方法は、典型的には集積回路であるLSIで実現される。一例として、図38に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に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
 なお、本発明の一態様に係る画像処理装置について、上記各実施の形態を用いて説明したが、この画像処理装置はこれらに限定されるものではない。
 図39Aは、本発明の一態様に係る画像処理装置の構成を示すブロック図である。
 つまり、本発明の一態様に係る画像処理装置10は、画像を符号化することによって生成された符号化ストリームに対して所定の処理を行う画像処理装置であって、符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、その第1の処理単位に含まれる少なくとも1つの成分を順次出力する第1の処理部1と、第1の処理部1から出力された複数の成分の順序を入れ換えることにより、第1の処理単位とは異なる第2の処理単位ごとに、その第2の処理単位に含まれる少なくとも1つの成分を順次出力する入れ換え部2と、入れ換え部2から出力された複数の成分に対して、第2の処理単位ごとに、第2の処理を行う第2の処理部3とを備える。
 図39Bは、画像処理装置10による画像処理方法を示すフローチャートである。
 画像を符号化することによって生成された符号化ストリームに対して所定の処理を行う画像処理方法は、符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、その第1の処理単位に含まれる少なくとも1つの成分を順次出力する第1の処理ステップ(S1)と、第1の処理ステップ(S1)で出力された複数の成分の順序を入れ換えることにより、第1の処理単位とは異なる第2の処理単位ごとに、その第2の処理単位に含まれる少なくとも1つの成分を順次出力する入れ換えステップ(S2)と、入れ換えステップ(S2)で出力された複数の成分に対して、第2の処理単位ごとに、第2の処理を行う第2の処理ステップ(S3)と、を含む。
 このような構成または処理手順であっても、複数の成分の順序が入れ換えられるため、上記各実施の形態と同様の効果を奏すことができる。
 なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の画像処理装置などを実現するソフトウェアは、次のようなプログラムである。
 すなわち、このプログラムは、コンピュータに、符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、その第1の処理単位に含まれる少なくとも1つの成分を順次出力する第1の処理ステップ(S1)と、第1の処理ステップ(S1)で出力された複数の成分の順序を入れ換えることにより、第1の処理単位とは異なる第2の処理単位ごとに、その第2の処理単位に含まれる少なくとも1つの成分を順次出力する入れ換えステップ(S2)と、入れ換えステップ(S2)で出力された複数の成分に対して、第2の処理単位ごとに、第2の処理を行う第2の処理ステップ(S3)と、を実行させる。
 本発明の画像処理装置は、記憶素子の容量を削減することができるという効果を奏し、例えば、テレビ、デジタルビデオレコーダー、カーナビゲーション、携帯電話、デジタルカメラ、デジタルビデオカメラ等の高解像度の情報表示機器や撮像機器に利用可能であり、利用価値が高い。
 1  第1の処理部
 2  入れ換え部
 3  第2の処理部
 10  画像処理装置
 501  制御部
 502,520,604  ビットストリームバッファ
 503  フレームメモリ
 504,606,640  可変長復号部
 505  入れ換え逆量子化部
 506,644  逆周波数変換部
 507,645  イントラ予測部
 508,642  動きベクトル算出部
 509,643  動き補償部
 510  スイッチ
 511  再構成部
 512  デブロックフィルタ部
 513,513a,650  画像復号装置
 601  順序入れ換え部
 602,641  逆量子化部
 603  画像再構成部
 605,608,615,622  ストリーム変換部
 607  可変長符号化部
 609  分割部
 610,621,623  ストリーム再構成部
 611,617  輝度Y用可変長符号化部
 612,618  色差Cb用可変長符号化部
 613,619  色差Cr用可変長符号化部
 614,620  符号化情報用可変長符号化部
 616  マーカ挿入部
 624  輝度可変長復号部
 625  色差可変長復号部
 626  輝度逆量子化部
 627  色差逆量子化部
 628  輝度逆周波数変換部
 629  色差逆周波数変換部
 630  係数再構成部
 631  輝度動きベクトル算出部
 632  色差動きベクトル算出部
 633  輝度動き補償部
 634  色差動き補償部
 635  動き補償再構成部
 636  輝度イントラ予測部
 637  色差イントラ予測部
 701~709  メモリ
 710  輝度Y用メモリ
 711  色差Cb用メモリ
 712  色差Cr用メモリ
 713  符号化情報用メモリ
 714,718  輝度Yストリーム用メモリ
 715,719  色差Cbストリーム用メモリ
 716,720  色差Crストリーム用メモリ
 717,721  符号化情報ストリーム用メモリ
 722  マーカ挿入済ストリームメモリ
 723,725,727  輝度用メモリ
 724,726,728  色差用メモリ
 729  イントラ予測画像メモリ
 730~737  メモリ
 ex100  コンテンツ供給システム
 ex101  インターネット
 ex102  インターネットサービスプロバイダ
 ex103  ストリーミングサーバ
 ex104  電話網
 ex107,ex108,ex109,ex110  基地局
 ex111  コンピュータ
 ex112  PDA(Personal Digital Assistant)
 ex113,ex116  カメラ
 ex114  携帯電話
 ex117  マイク
 ex200  デジタル放送用システム
 ex201  放送局
 ex202  放送衛星(衛星)
 ex203  ケーブル
 ex204,ex205  アンテナ
 ex210  車
 ex211  カーナビゲーション
 ex212  再生装置
 ex213,ex219  モニタ
 ex215,ex216  記録メディア
 ex217  セットトップボックス(STB)
 ex218  リーダ/レコーダ
 ex220  リモートコントローラ
 ex230  情報トラック
 ex231  記録ブロック
 ex232  内周領域
 ex233  データ記録領域
 ex234  外周領域
 ex300  テレビ(受信機)
 ex301  チューナ
 ex302  変調/復調部
 ex303  多重/分離部
 ex304  音声信号処理部
 ex305  映像信号処理部
 ex306,ex507  信号処理部
 ex307  スピーカ
 ex308  表示部
 ex309  出力部
 ex310  制御部
 ex311,ex505  電源回路部
 ex312  操作入力部
 ex313  ブリッジ
 ex314  スロット部
 ex315  ドライバ
 ex316  モデム
 ex317  インタフェース部
 ex318,ex319,ex320,ex321  バッファ
 ex400  情報再生/記録部
 ex401  光ヘッド
 ex402  変調記録部
 ex403  再生復調部
 ex404  バッファ
 ex405  ディスクモータ
 ex406  サーボ制御部
 ex407  システム制御部
 ex500  LSI
 ex502  マイコン(マイクロコンピュータ)
 ex503  メモリコントローラ
 ex504  ストリームI/O
 ex509  AV I/O
 ex510  バス
 ex511  メモリ

Claims (20)

  1.  画像を符号化することによって生成された符号化ストリームに対して所定の処理を行う画像処理装置であって、
     前記符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、当該第1の処理単位に含まれる少なくとも1つの成分を順次出力する第1の処理部と、
     前記第1の処理部から出力された複数の成分の順序を入れ換えることにより、前記第1の処理単位とは異なる第2の処理単位ごとに、当該第2の処理単位に含まれる少なくとも1つの成分を順次出力する入れ換え部と、
     前記入れ換え部から出力された複数の成分に対して、前記第2の処理単位ごとに、第2の処理を行う第2の処理部と
     を備える画像処理装置。
  2.  前記第1の処理単位は、前記画像の符号化に用いられた符号化ユニットである
     請求項1に記載の画像処理装置。
  3.  前記第2の処理単位は、前記符号化ユニットの周波数変換に用いられた周波数変換ユニット、または前記周波数変換ユニットよりも小さいサイズの処理単位である
     請求項2に記載の画像処理装置。
  4.  前記第1の処理部は、前記符号化ストリームの構成に応じて可変なサイズの前記第1の処理単位ごとに、当該第1の処理単位に含まれる少なくとも1つの成分を順次出力する
     請求項1~3の何れか1項に記載の画像処理装置。
  5.  前記入れ換え部は、前記符号化ストリームの構成に応じて可変なサイズの前記第2の処理単位ごとに、当該第2の処理単位に含まれる少なくとも1つの成分を順次出力する
     請求項1~4の何れか1項に記載の画像処理装置。
  6.  前記入れ換え部は、前記第1の処理単位よりも小さいサイズの前記第2の処理単位ごとに、当該第2の処理単位に含まれる少なくとも1つの成分を順次出力する
     請求項1~5の何れか1項に記載の画像処理装置。
  7.  前記画像処理装置は、さらに、
     前記第2の処理によって生成されるストリームに対して第3の処理を行うことによって、前記符号化ストリームを復号する第3の処理部を備える
     請求項1~6の何れか1項に記載の画像処理装置。
  8.  前記第1の処理単位は、前記画像の符号化に用いられる予測方法をイントラ予測とインター予測とに切り換えることが可能な最小単位である
     請求項1~7の何れか1項に記載の画像処理装置。
  9.  前記第1の処理部は、前記第1の処理単位に含まれる複数の成分として複数の色成分のそれぞれを順次出力し、
     前記入れ換え部は、前記第1の処理部から出力された複数の色成分の順序を入れ換えることにより、前記第2の処理単位に含まれる複数の色成分を順次出力する
     請求項1~8の何れか1項に記載の画像処理装置。
  10.  前記第1の処理部は、前記複数の色成分のそれぞれを順次出力することによって、前記複数の色成分のそれぞれを記憶部に順次格納し、
     前記入れ換え部は、前記記憶部に格納されている前記複数の色成分の順序と異なる順序で、前記複数の色成分のそれぞれを順次読み出すことによって、前記複数の色成分の順序を入れ換える
     請求項9に記載の画像処理装置。
  11.  前記入れ換え部は、前記第1の処理部から出力された複数の色成分の順序と異なる順序で前記複数の色成分のそれぞれを記憶部に順次書き込むことによって、前記複数の色成分の順序を入れ換え、
     前記第2の処理部は、前記記憶部に格納されている前記複数の色成分の順序にしたがって、前記複数の色成分のそれぞれを順次読み出す
     請求項9に記載の画像処理装置。
  12.  前記第2の処理部は、前記第2の処理単位に含まれる複数の色成分を用いて、当該第2の処理単位に対応する画像を再構成する再構成処理を、前記第2の処理に含まれる処理として行う
     請求項9~11の何れか1項に記載の画像処理装置。
  13.  前記第1の処理部は、可変長復号を前記第1の処理として行い、
     前記第2の処理部は、前記第2の処理に含まれる処理として逆量子化を行う
     請求項12に記載の画像処理装置。
  14.  前記第1の処理部は、可変長復号を前記第1の処理として行い、前記第1の処理単位に含まれる少なくとも1つの成分として色成分を順次出力し、
     前記入れ換え部は、前記第1の処理部から出力された複数の色成分の順序を入れ換え、
     前記第2の処理部は、前記第2の処理に含まれる処理として可変長符号化を行う
     請求項1に記載の画像処理装置。
  15.  前記第1の処理部は、可変長復号を前記第1の処理として行い、前記第1の処理単位に含まれる少なくとも1つの成分として色成分を順次出力し、
     前記入れ換え部は、
     前記第1の処理部から出力された複数の色成分のそれぞれを、色成分の種類ごとに分類する分割部と、
     色成分の種類ごとに、当該種類に属する複数の色成分に対する可変長符号化を行い、前記可変長符号化によって生成されるストリームを記憶部に格納する可変長符号化部と、
     前記記憶部に格納されている、色成分の種類ごとに生成されたストリームから、前記第1の処理部から出力された複数の色成分の順序とは異なる順序で、前記複数の色成分のそれぞれを順次読み出すことによって、前記複数の色成分の順序が入れ換えられた入れ換え済符号化ストリームを生成するストリーム再構成部とを備え、
     前記可変長符号化部は、色成分の種類のそれぞれに対する可変長符号化を並列に行い、
     前記入れ換え済符号化ストリームは、前記第2の処理単位のサイズと同じサイズの符号化ユニットを含む
     請求項1に記載の画像処理装置。
  16.  前記第1の処理部は、可変長復号を前記第1の処理として行い、前記第1の処理単位に含まれる少なくとも1つの成分として色成分を順次出力し、
     前記入れ換え部は、
     前記第1の処理部から出力された複数の色成分のそれぞれに対して、当該色成分の種類を識別するためのマーカを付加するマーカ挿入部と、
     前記マーカ挿入部によって付加されたマーカに基づいて、前記第1の処理部から出力された複数の色成分のそれぞれの種類を識別し、色成分の種類ごとに、当該種類に属する複数の色成分に対する可変長符号化を行い、前記可変長符号化によって生成されるストリームを記憶部に格納する可変長符号化部と、
     前記記憶部に格納されている、色成分の種類ごとに生成されたストリームから、前記第1の処理部から出力された複数の色成分の順序とは異なる順序で、前記複数の色成分を順次読み出すことによって、前記複数の色成分の順序が入れ換えられた入れ換え済符号化ストリームを生成するストリーム再構成部とを備え、
     前記可変長符号化部は、色成分の種類のそれぞれに対する可変長符号化を並列に行う
     請求項1に記載の画像処理装置。
  17.  前記ストリーム再構成部は、
     前記複数の色成分のそれぞれに対して付加されたマーカとともに前記複数の色成分を順次読み出すことによって、前記複数の色成分のそれぞれに対してマーカが付加された前記入れ換え済符号化ストリームを生成し、
     前記第2の処理部は、
     前記入れ換え済符号化ストリームに含まれる複数の前記マーカに基づいて、前記色成分の種類ごとに、当該種類に属する複数の色成分に対する可変長復号を行う可変長復号部と、
     前記色成分の種類ごとに、当該種類に属する可変長復号された前記複数の色成分に対する逆量子化を行う逆量子化部と、
     前記色成分の種類ごとに、当該種類に属する逆量子化された前記複数の色成分に対する逆周波数変換を行うことによって、複数の前記マーカを含む色成分データを生成する逆周波数変換部と、
     前記色成分の種類ごとに生成された色成分データを、前記色成分データに含まれる複数の前記マーカに基づいて識別し、前記入れ換え部によって入れ換えられた順序どおりに、逆周波数変換された前記複数の色成分が配列するように、前記複数の色成分を再構成する成分再構成部とを備え、
     前記可変長復号部、前記逆量子化部、および前記逆周波数変換部はそれぞれ、前記色成分の種類のそれぞれに対する処理を並列に行う
     請求項16に記載の画像処理装置。
  18.  画像を符号化することによって生成された符号化ストリームに対して所定の処理を行う画像処理方法であって、
     前記符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、当該第1の処理単位に含まれる少なくとも1つの成分を順次出力する第1の処理ステップと、
     前記第1の処理ステップで出力された複数の成分の順序を入れ換えることにより、前記第1の処理単位とは異なる第2の処理単位ごとに、当該第2の処理単位に含まれる少なくとも1つの成分を順次出力する入れ換えステップと、
     前記入れ換えステップで出力された複数の成分に対して、前記第2の処理単位ごとに、第2の処理を行う第2の処理ステップと、
     を含む画像処理方法。
  19.  画像を符号化することによって生成された符号化ストリームに対して所定の処理を行うためのプログラムであって、
     前記符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、当該第1の処理単位に含まれる少なくとも1つの成分を順次出力する第1の処理ステップと、
     前記第1の処理ステップで出力された複数の成分の順序を入れ換えることにより、前記第1の処理単位とは異なる第2の処理単位ごとに、当該第2の処理単位に含まれる少なくとも1つの成分を順次出力する入れ換えステップと、
     前記入れ換えステップで出力された複数の成分に対して、前記第2の処理単位ごとに、第2の処理を行う第2の処理ステップと、
     をコンピュータに実行させるプログラム。
  20.  画像を符号化することによって生成された符号化ストリームに対して所定の処理を行う集積回路であって、
     前記符号化ストリームに対して第1の処理を行うことにより、第1の処理単位ごとに、当該第1の処理単位に含まれる少なくとも1つの成分を順次出力する第1の処理部と、
     前記第1の処理部から出力された複数の成分の順序を入れ換えることにより、前記第1の処理単位とは異なる第2の処理単位ごとに、当該第2の処理単位に含まれる少なくとも1つの成分を順次出力する入れ換え部と、
     前記入れ換え部から出力された複数の成分に対して、前記第2の処理単位ごとに、第2の処理を行う第2の処理部と
     を備える集積回路。
PCT/JP2012/007805 2012-02-28 2012-12-05 画像処理装置、及び、画像処理方法 WO2013128526A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013523429A JP5999515B2 (ja) 2012-02-28 2012-12-05 画像処理装置、及び、画像処理方法
CN201280004339.8A CN103404139B (zh) 2012-02-28 2012-12-05 图像信号处理装置以及图像信号处理方法
US13/976,746 US9723308B2 (en) 2012-02-28 2012-12-05 Image processing apparatus and image processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012-041638 2012-02-28
JP2012041638 2012-02-28

Publications (1)

Publication Number Publication Date
WO2013128526A1 true WO2013128526A1 (ja) 2013-09-06

Family

ID=49081788

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/007805 WO2013128526A1 (ja) 2012-02-28 2012-12-05 画像処理装置、及び、画像処理方法

Country Status (4)

Country Link
US (1) US9723308B2 (ja)
JP (1) JP5999515B2 (ja)
CN (1) CN103404139B (ja)
WO (1) WO2013128526A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017007957A (ja) * 2015-06-17 2017-01-12 日東電工株式会社 貼付製剤

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9270999B2 (en) * 2013-09-25 2016-02-23 Apple Inc. Delayed chroma processing in block processing pipelines
US20160044339A1 (en) * 2014-08-07 2016-02-11 Qualcomm Incorporated System and method for reordering of prefixes and suffixes in variable length coding to increase throughput
US20180131936A1 (en) * 2016-11-10 2018-05-10 Intel Corporation Conversion buffer to decouple normative and implementation data path interleaving of video coefficients
JP6969295B2 (ja) * 2017-10-31 2021-11-24 富士フイルムビジネスイノベーション株式会社 情報処理装置及び画像処理システム
CN113055691A (zh) * 2017-12-29 2021-06-29 深圳市大疆创新科技有限公司 视频解码器及其制造方法,数据处理电路、系统和方法
JP2021061501A (ja) * 2019-10-04 2021-04-15 シャープ株式会社 動画像変換装置及び方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007058294A1 (ja) * 2005-11-18 2007-05-24 Sony Corporation 符号化装置および方法、復号装置および方法、並びに、伝送システム
WO2011161949A1 (ja) * 2010-06-23 2011-12-29 パナソニック株式会社 画像復号装置、画像復号方法、集積回路およびプログラム
JP2012147293A (ja) * 2011-01-13 2012-08-02 Canon Inc 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4654697A (en) * 1985-11-01 1987-03-31 Eastman Kodak Company Video signal apparatus for processing a time-division-multiplex video signal having a buffer segment
FR2660142B1 (fr) * 1990-03-20 1992-07-17 France Etat Procede et dispositif de codage-decodage d'un signal numerique de television haute definition en bande etroite.
US5497246A (en) * 1993-07-15 1996-03-05 Asahi Kogaku Kogyo Kabushiki Kaisha Image signal processing device
JP3510433B2 (ja) 1996-11-26 2004-03-29 シャープ株式会社 画像処理装置
US5963260A (en) 1997-03-18 1999-10-05 U.S. Philips Electronics North America Corporation Macroblock-level partitioned HDTV video decoder and related method
JP2002084493A (ja) 2000-09-08 2002-03-22 Matsushita Electric Ind Co Ltd 固体撮像装置および撮像方法
KR20030057690A (ko) * 2001-12-29 2003-07-07 엘지전자 주식회사 비디오 디코딩 시스템
KR100627597B1 (ko) * 2002-04-26 2006-09-25 가부시키가이샤 엔티티 도코모 화상 부호화 장치, 화상 복호 장치, 화상 부호화 방법, 화상 복호 방법, 화상 부호화 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 화상 복호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
US7062096B2 (en) * 2002-07-29 2006-06-13 Matsushita Electric Industrial Co., Ltd. Apparatus and method for performing bitplane coding with reordering in a fine granularity scalability coding system
JP4577048B2 (ja) 2004-03-11 2010-11-10 パナソニック株式会社 画像符号化方法、画像符号化装置および画像符号化プログラム
KR100695141B1 (ko) * 2005-02-15 2007-03-14 삼성전자주식회사 영상처리시스템에 있어서 메모리 억세스장치 및 방법, 데이터 기록장치 및 방법과 데이터 독출장치 및 방법
JP2006270325A (ja) * 2005-03-23 2006-10-05 Fuji Xerox Co Ltd 画像圧縮装置、画像伸長装置、画像データ、画像処理方法及びプログラム
BRPI0817888A2 (pt) * 2007-10-15 2015-03-31 Mitsubishi Electric Corp Dispositivos e métodos de codificação e de decodificação de imagem.
US20090304073A1 (en) * 2008-06-06 2009-12-10 Mohammad Usman Systems and Methods for the Bandwidth Efficient Processing of Data
US8422772B2 (en) 2008-06-10 2013-04-16 Panasonic Corporation Decoding device, decoding method, and receiving device
US8942282B2 (en) 2010-04-12 2015-01-27 Qualcomm Incorporated Variable length coding of coded block pattern (CBP) in video compression
US20110249754A1 (en) 2010-04-12 2011-10-13 Qualcomm Incorporated Variable length coding of coded block pattern (cbp) in video compression
CN102611888B (zh) * 2011-11-18 2014-07-23 北京工业大学 一种对屏幕内容的编码方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007058294A1 (ja) * 2005-11-18 2007-05-24 Sony Corporation 符号化装置および方法、復号装置および方法、並びに、伝送システム
WO2011161949A1 (ja) * 2010-06-23 2011-12-29 パナソニック株式会社 画像復号装置、画像復号方法、集積回路およびプログラム
JP2012147293A (ja) * 2011-01-13 2012-08-02 Canon Inc 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
TIM HELLMAN ET AL.: "Changing Luma/Chroma Coefficient Interleaving from CU to TU level", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/ SC29/WG11, JCTVC-G112, 7TH MEETING, November 2011 (2011-11-01), GENEVA, CH, pages 1 - 10 *
YOUJI SHIBAHARA ET AL.: "Nearest placement of Y/Cb/Cr transform coefficients locating at same spatial position", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, JCTVC-G381, 7TH MEETING, November 2011 (2011-11-01), GENEVA, CH, pages 1 - 15 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017007957A (ja) * 2015-06-17 2017-01-12 日東電工株式会社 貼付製剤

Also Published As

Publication number Publication date
CN103404139B (zh) 2018-08-07
US9723308B2 (en) 2017-08-01
JPWO2013128526A1 (ja) 2015-07-30
CN103404139A (zh) 2013-11-20
US20140169479A1 (en) 2014-06-19
JP5999515B2 (ja) 2016-09-28

Similar Documents

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

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2013523429

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 13976746

Country of ref document: US

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

Ref document number: 12870230

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12870230

Country of ref document: EP

Kind code of ref document: A1