WO2020008714A1 - 画像処理装置、画像処理方法及び画像処理プログラム - Google Patents

画像処理装置、画像処理方法及び画像処理プログラム Download PDF

Info

Publication number
WO2020008714A1
WO2020008714A1 PCT/JP2019/017519 JP2019017519W WO2020008714A1 WO 2020008714 A1 WO2020008714 A1 WO 2020008714A1 JP 2019017519 W JP2019017519 W JP 2019017519W WO 2020008714 A1 WO2020008714 A1 WO 2020008714A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
image
pixels
orthogonal transformation
block
Prior art date
Application number
PCT/JP2019/017519
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 US17/250,301 priority Critical patent/US20220060723A1/en
Publication of WO2020008714A1 publication Critical patent/WO2020008714A1/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the present disclosure relates to an image processing device, an image processing method, and an image processing program.
  • JVET Joint Video Exploration Team
  • ITU-T International Telecommunication Union Telecommunication Standardization Sector
  • CU Coding Unit
  • TU Transform Unit
  • orthogonal transform and inverse orthogonal transform have been executed in TU units obtained by dividing a CU.
  • the TU is divided so that the number of pixels in the height direction or the width direction is a power of two. Therefore, the orthogonal transform and the inverse orthogonal transform have not been executed in a unit in which the number of pixels in the height direction or the width direction is not a power of two.
  • the number of pixels in the width direction or the height direction of the divided block is not a power of two.
  • orthogonal transform and inverse orthogonal transform are performed in TU units obtained by dividing a CU, it has not been assumed that the number of pixels of a target block for orthogonal transform and inverse orthogonal transform does not become a power of two. Therefore, when the number of pixels in the height direction or the width direction is a power of 2, when the orthogonal transformation or the inverse orthogonal transformation is performed on the block, the processing amount increases.
  • the present disclosure proposes an image processing device, an image processing method, and an image processing program that can suppress an increase in the amount of processing even when the number of pixels in the width direction or the height direction of a block is not a power of two. .
  • an image processing device is an orthogonal transformation unit that performs orthogonal transformation on a block obtained by dividing an image, and a height direction of the block, or A control unit that controls the orthogonal transform unit according to whether or not the number of pixels in the width direction is a power of two.
  • the present disclosure it is possible to suppress an increase in the processing amount even when the number of pixels in the width direction or the height direction of the block is not a power of two.
  • the effects described here are not necessarily limited, and may be any of the effects described in the present disclosure.
  • FIG. 1 is a block diagram illustrating a configuration example of an embodiment of an image processing system according to a first embodiment of the present disclosure.
  • FIG. 5 is a diagram for describing processing performed in the encoding circuit according to the first embodiment of the present disclosure.
  • FIG. 7 is a diagram for describing processing performed in the decoding circuit according to the first embodiment of the present disclosure.
  • FIG. 1 is a block diagram illustrating a configuration example of an embodiment of an image encoding device according to a first embodiment of the present disclosure.
  • FIG. 3 is a block diagram illustrating a configuration example of an embodiment of an image decoding device according to a first embodiment of the present disclosure.
  • 6 is a flowchart illustrating an image encoding process performed by the image encoding device 12 according to the first embodiment of the present disclosure.
  • FIG. 5 is a flowchart illustrating an image decoding process performed by the image decoding device 13 according to the first embodiment of the present disclosure.
  • FIG. 2 is a diagram (1) illustrating an example of CU block division according to the first embodiment of the present disclosure.
  • FIG. 2B is a diagram (2) illustrating an example of CU block division according to the first embodiment of the present disclosure.
  • FIG. 5 is a diagram illustrating a variation of CU block division according to the first embodiment of the present disclosure.
  • FIG. 3 is a diagram illustrating an example before and after a CU is divided according to the first embodiment of the present disclosure.
  • 5 is a flowchart illustrating an example of an encoding process according to the first embodiment of the present disclosure.
  • FIG. 5 is a flowchart illustrating an example of a decoding process according to the first embodiment of the present disclosure.
  • 15 is a flowchart illustrating an example of an encoding process according to a modification (1) of the first embodiment of the present disclosure.
  • 15 is a flowchart illustrating an example of a decoding process according to a modification (1) of the first embodiment of the present disclosure.
  • 15 is a flowchart illustrating an example of an encoding process according to a modification (2) of the first embodiment of the present disclosure.
  • 15 is a flowchart illustrating an example of an encoding process according to the second embodiment of the present disclosure.
  • FIG. 13 is a diagram illustrating an example of a division mode of a CU according to the second embodiment of the present disclosure.
  • FIG. 13 is a diagram illustrating an example of a division mode of a CU according to the second embodiment of the present disclosure.
  • FIG. 13 is a diagram illustrating an example of a division mode of a CU according to the second embodiment of the present disclosure.
  • FIG. 15 is a diagram illustrating a processing procedure of orthogonal transformation for a CU whose number of pixels in the height direction and the width direction is a power of 2 according to the third embodiment of the present disclosure.
  • FIG. 15 is a diagram illustrating a CU in which the number of pixels in the height direction is not a power of 2 according to the third embodiment of the present disclosure.
  • FIG. 15 is a diagram illustrating a CU in which the number of pixels in the width direction is not a power of 2 according to the third embodiment of the present disclosure.
  • FIG. 15 is a diagram illustrating an example of a variation of a region in which orthogonal transform is performed according to the fourth embodiment of the present disclosure.
  • 15 is a flowchart illustrating an example of an encoding process according to a fourth embodiment of the present disclosure.
  • 15 is a flowchart illustrating an example of a decoding process according to a fourth embodiment of the present disclosure.
  • FIG. 15 is a diagram illustrating an example of a variation of a region in which orthogonal transform is performed according to the fourth embodiment of the present disclosure.
  • An example of a case where orthogonal transformation is recursively performed on a maximum area in which the number of pixels is a power of 2 with respect to an area remaining in the orthogonal transformation according to the modification (1) of the fourth embodiment of the present disclosure is shown.
  • FIG. 21 is a block diagram illustrating a configuration example of an embodiment of a computer on which a program for executing the series of processes described above is installed.
  • Non-patent document 1 (described above)
  • Non-Patent Document 2 TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (International Telecommunication Union), "High efficiency video coding", H.265, 12/2016
  • Non-Patent Document 3 TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (International Telecommunication Union), "Advanced video coding for generic audiovisual services", H.264, 04/2017
  • Non-Patent Documents 1 to 3 also serve as the basis for determining the support requirements.
  • QTBT Quad Tree Plus Plus Binary Tree
  • Block StrucTUre described in Non-Patent Document 1 or Quad-Tree Block Block StrucTUre described in Non-Patent Document 2 has no direct description in the embodiment. Even so, it is within the disclosure range of the present technology and satisfies the support requirements of the claims. Further, for example, similarly, technical terms such as parsing, syntax, and semantics are within the disclosure range of the present technology even if there is no direct description in the embodiment. Satisfy the support requirements of the claims.
  • a “block” (not a block indicating a processing unit) used in the description as a partial area of an image (picture) or a processing unit indicates an arbitrary partial area in a picture unless otherwise specified, and has a size, a shape, The characteristics and the like are not limited.
  • block includes TB (Transform Block), TU (Transform Unit), PB (Prediction Block), PU (Prediction Unit), SCU (Smallest Coding Unit), CU (Coding Unit), LCU (Largest Coding Unit) ), A coding tree block (CTB), a coding tree unit (CTU), a conversion block, a subblock, a macroblock, a tile, a slice, or any other partial area (processing unit).
  • CTB coding tree block
  • CTU coding tree unit
  • conversion block a subblock, a macroblock, a tile, a slice, or any other partial area (processing unit).
  • the block size may be specified indirectly.
  • the block size may be specified using identification information for identifying the size.
  • the block size may be specified by a ratio or a difference from the size of a reference block (for example, an LCU or an SCU).
  • the designation of the block size also includes designation of a range of block sizes (for example, designation of a range of allowable block sizes).
  • the data unit in which various information is set and the data unit targeted for various processes are arbitrary, and are not limited to the examples described above.
  • these pieces of information and processing are respectively TU (Transform Unit), TB (Transform Block), PU (Prediction Unit), PB (Prediction Block), CU (Coding Unit), LCU (Largest Coding Unit), and sub-block.
  • a block, a tile, a slice, a picture, a sequence, or a component, or the data of those data units may be targeted.
  • this data unit can be set for each information and process, and it is not necessary that all information and process data units be unified.
  • the storage location of these pieces of information is arbitrary, and may be stored in the above-described data unit header or parameter set. Further, the information may be stored at a plurality of locations.
  • Control information related to the present technology may be transmitted from the encoding side to the decoding side.
  • control information for example, enabled_flag
  • control information indicating a target to which the present technology is applied may be transmitted.
  • control information specifying a block size (upper or lower limit, or both) to which the present technology is applied (or application is permitted or prohibited), a frame, a component, a layer, or the like may be transmitted.
  • “flag” is information for identifying a plurality of states, and is not limited to information used for identifying two states of true (1) or false (0), as well as three or more. Information that can identify the state is also included. Therefore, the value that the “flag” can take may be, for example, a binary value of 1/0, or may be a ternary value or more. That is, the number of bits constituting the “flag” is arbitrary, and may be 1 bit or a plurality of bits. Further, the identification information (including the flag) may include not only a form in which the identification information is included in the bit stream but also a form in which the difference information of the identification information with respect to certain reference information is included in the bit stream. In, "flag” and “identification information” include not only the information but also difference information with respect to reference information.
  • association metadata Various types of information (metadata and the like) relating to the encoded data (bit stream) may be transmitted or recorded in any form as long as the information is associated with the encoded data.
  • the term "associate” means, for example, that one data can be used (linked) when one data is processed. That is, the data associated with each other may be collected as one data or may be individual data.
  • the information associated with the encoded data (image) may be transmitted on a different transmission path from the encoded data (image).
  • information associated with encoded data (image) may be recorded on a recording medium different from the encoded data (image) (or another recording area of the same recording medium).
  • this “association” may be a part of the data instead of the entire data.
  • an image and information corresponding to the image may be associated with each other in an arbitrary unit such as a plurality of frames, one frame, or a part of the frame.
  • FIG. 1 is a block diagram illustrating a configuration example of an embodiment of an image processing system according to the first embodiment of the present disclosure.
  • the image processing system 11 includes an image encoding device 12 and an image decoding device 13.
  • an image captured by an imaging device is input to the image encoding device 12, and the image encoding device 12 encodes the image to generate encoded data.
  • the encoded data is transmitted as a bit stream from the image encoding device 12 to the image decoding device 13.
  • an image is generated by decoding the encoded data in the image decoding device 13, and displayed on a display device (not shown).
  • the image encoding device 12 has a configuration in which an image processing chip 21 and an external memory 22 are connected via a bus.
  • the image processing chip 21 includes an encoding circuit 23 for encoding an image, and a cache memory 24 for temporarily storing data required when the encoding circuit 23 encodes the image.
  • the external memory 22 is composed of, for example, a DRAM (Dynamic Random Access Memory), and stores data of an image to be encoded in the image encoding device 12 for each frame.
  • DRAM Dynamic Random Access Memory
  • the image encoding device 12 among the data of the image for one frame stored in the external memory 22, data divided for each CU which is a processing unit for performing encoding is read into the cache memory 24. . Then, in the image encoding device 12, encoding is performed by the encoding circuit 23 for each CU stored in the cache memory 24, and encoded data is generated.
  • the image decoding device 13 has a configuration in which an image processing chip 31 and an external memory 32 are connected via a bus.
  • the image processing chip 31 includes a decoding circuit 33 that decodes encoded data to generate an image, and a cache memory 34 that temporarily stores data required when the decoding circuit 33 decodes the encoded data. Is done.
  • the external memory 32 is composed of, for example, a DRAM, and stores coded data to be decoded by the image decoding device 13 for each image frame.
  • an image is generated by decoding the encoded data by the decoding circuit 33 for each CU stored in the cache memory 34.
  • FIG. 2 is a diagram for describing processing performed in the encoding circuit according to the first embodiment of the present disclosure.
  • the processing performed by the encoding circuit 23 of the image encoding device 12 which is an example of the image processing device, will be further described.
  • the encoding circuit 23 is designed to function as an orthogonal transformation unit and a control unit as illustrated.
  • FIG. 2 is described on the assumption that the orthogonal transform unit and the control unit are realized by the encoding circuit 23, the orthogonal transform unit and the control unit are realized by another form such as software. May be done.
  • the encoding circuit 23 may include a CPU as a hardware element and a storage device in which a program is stored, and the functions of the orthogonal transform unit and the control unit may be realized by the CPU executing the program.
  • the present invention is not limited to this, and some or all of the orthogonal transform unit and the control unit may be realized by a dedicated hardware circuit. Further, the orthogonal transform unit and the control unit may be realized by a mixture of hardware and software.
  • the encoding circuit 23 performs the orthogonal transformation on the blocks obtained by dividing the image. Further, the encoding circuit 23 controls the orthogonal transform unit according to whether the number of pixels in the height direction or the width direction of the block is a power of two.
  • the encoding circuit 23 performs orthogonal transform on a CU obtained by dividing an image, that is, on a block basis.
  • the encoding circuit 23 performs division regardless of whether the number of pixels in the height direction or the width direction of the divided CU is a power of two. Then, when the number of pixels in the height direction and the width direction of the CU is a power of 2, the encoding circuit 23 can execute the orthogonal transform at high speed with a small amount of calculation by the fast Fourier transform.
  • the encoding circuit 23 cannot use the fast Fourier transform when the number of pixels in the height direction and the width direction of the CU is not a power of two. Therefore, the encoding circuit 23 increases the processing amount by controlling the orthogonal transformation depending on whether the number of pixels in the height direction or the width direction of the divided CU is a power of 2 or not. Suppress the speed drop.
  • the encoding circuit 23 outputs a bit stream including various information such as division information indicating the division form of the CU and the like.
  • FIG. 3 is a diagram for describing processing performed in the decoding circuit according to the first embodiment of the present disclosure.
  • the processing performed by the decoding circuit 33 of the image decoding device 13 which is an example of the image processing device will be further described.
  • the decoding circuit 33 is designed to function as an orthogonal transformation unit and a control unit as shown.
  • FIG. 3 illustrates the case where the orthogonal transform unit and the control unit are realized by the decoding circuit 33
  • the orthogonal transform unit and the control unit are realized by another form such as software. Is also good.
  • the functions of the orthogonal transform unit and the control unit may be realized by a CPU executing a program. Further, a part or all of the orthogonal transform unit and the control unit may be realized by a dedicated hardware circuit. Further, the orthogonal transform unit and the control unit may be realized by a mixture of hardware and software.
  • the decoding circuit 33 performs orthogonal transformation on blocks obtained by dividing the image. Further, the encoding circuit 23 controls the orthogonal transform unit according to whether the number of pixels in the height direction or the width direction of the block is a power of two.
  • the inverse orthogonal transform is a concept included in the orthogonal transform in a broad sense, and is one form of the orthogonal transform. That is, the decoding circuit 33 performs an inverse orthogonal transform, which is a form of orthogonal transform, on a block obtained by dividing the image. Further, the encoding circuit 23 includes an orthogonal transform unit that performs an inverse orthogonal transform, which is a form of orthogonal transform, according to whether the number of pixels in the height direction or the width direction of the block is a power of 2. Control.
  • the decoding circuit 33 extracts, from the bit stream output from the image encoding device 12, various types of information including division information indicating the division form of the CU and the like.
  • the decoding circuit 33 executes an inverse orthogonal transform, which is a form of orthogonal transform, on a CU obtained by dividing an image, that is, on a block basis.
  • the encoding circuit 23 performs the orthogonal transform depending on whether the number of pixels in the height direction and the width direction of the CU is a power of 2, and outputs the bit stream together with various information related to the orthogonal transform. I do.
  • the decoding circuit 33 controls an orthogonal transform unit that performs an inverse orthogonal transform, which is a form of the orthogonal transform, based on various types of information related to the orthogonal transform included in the bit stream. That is, the decoding circuit 33 controls the orthogonal transform unit according to whether or not the number of pixels in the height direction or the width direction of the block is a power of two. Therefore, the encoding circuit 23 can suppress an increase in processing amount and a decrease in processing speed.
  • FIG. 4 is a block diagram illustrating a configuration example of an embodiment of an image encoding device according to the first embodiment of the present disclosure.
  • the image coding device 12 shown in FIG. 4 is a device for coding image data of a moving image.
  • the image encoding device 12 implements the technology described in Non-Patent Document 1, Non-Patent Document 2, or Non-Patent Document 3 and employs a method based on a standard described in any of those documents.
  • the image data of the moving image is encoded.
  • FIG. 4 shows main components such as a processing unit and a flow of data, and the components shown in FIG. 4 are not necessarily all. That is, in the image encoding device 12, a processing unit not illustrated as a block in FIG. 4 may exist, or a process or data flow not illustrated as an arrow or the like in FIG. 4 may exist.
  • the image encoding device 12 includes a control unit 101, a rearrangement buffer 111, an arithmetic unit 112, an orthogonal transformation unit 113, a quantization unit 114, an encoding unit 115, an accumulation buffer 116, and an inverse quantization unit. 117, an inverse orthogonal transform unit 118, an operation unit 119, an in-loop filter unit 120, a frame memory 121, a prediction unit 122, and a rate control unit 123.
  • the prediction unit 122 includes an intra prediction unit and an inter prediction unit (not shown).
  • the image coding device 12 is a device for generating coded data (bit stream) by coding moving image data.
  • the control unit 101 divides the moving image data held by the rearrangement buffer 111 into processing unit blocks (such as CUs, PUs, and conversion blocks) based on an external or pre-designated processing unit block size. .
  • the control unit 101 determines coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, and the like) to be supplied to each block based on, for example, RDO (Rate-Distortion Optimization). I do.
  • control unit 101 After determining the above-mentioned encoding parameters, the control unit 101 supplies the parameters to each block. Specifically, it is as follows.
  • the header information Hinfo is supplied to each block.
  • the prediction mode information Pinfo is supplied to the encoding unit 115 and the prediction unit 122.
  • the transform information Tinfo is supplied to the encoding unit 115, the orthogonal transformation unit 113, the quantization unit 114, the inverse quantization unit 117, and the inverse orthogonal transformation unit 118.
  • the filter information Finfo is supplied to the in-loop filter unit 120.
  • Each field (input image) of moving image data is input to the image encoding device 12 in the order of reproduction (display order).
  • the rearrangement buffer 111 acquires and holds (stores) each input image in its reproduction order (display order).
  • the rearrangement buffer 111 rearranges the input image in encoding order (decoding order) or divides the input image into blocks in processing units, based on the control of the control unit 101.
  • the rearrangement buffer 111 supplies the processed input images to the calculation unit 112.
  • the rearrangement buffer 111 also supplies the input images (original images) to the prediction unit 122 and the in-loop filter unit 120.
  • the orthogonal transform unit 113 receives the prediction residual D supplied from the calculation unit 112 and the conversion information Tinfo supplied from the control unit 101, and performs orthogonal transform on the prediction residual D based on the conversion information Tinfo. Conversion is performed to derive a conversion coefficient Coeff. The orthogonal transform unit 113 supplies the obtained transform coefficient Coeff to the quantization unit 114.
  • the quantization unit 114 receives the transform coefficient Coeff supplied from the orthogonal transform unit 113 and the transform information Tinfo supplied from the control unit 101, and scales (quantizes) the transform coefficient Coeff based on the transform information Tinfo. ). Note that the quantization rate is controlled by the rate control unit 123. The quantization unit 114 supplies the quantized transform coefficient obtained by such quantization, that is, the quantized transform coefficient level level, to the encoding unit 115 and the inverse quantization unit 117.
  • the coding unit 115 includes a quantization transform coefficient level supplied from the quantization unit 114 and various coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, and filter information Finfo) supplied from the control unit 101. ), Information on filters such as filter coefficients supplied from the in-loop filter unit 120, and information on the optimal prediction mode supplied from the prediction unit 122.
  • the encoding unit 115 performs variable-length encoding (for example, arithmetic encoding) on the quantized transform coefficient level level to generate a bit string (encoded data).
  • ⁇ Encoding section 115 derives residual information Rinfo from the quantized transform coefficient level level, encodes residual information Rinfo, and generates a bit string.
  • the encoding unit 115 includes information about the filter supplied from the in-loop filter unit 120 in the filter information Finfo, and includes information about the optimal prediction mode supplied from the prediction unit 122 in the prediction mode information Pinfo. Then, the coding unit 115 codes the above-described various coding parameters (header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, and the like), and generates a bit sequence.
  • ⁇ Encoding section 115 also multiplexes the bit strings of various information generated as described above to generate encoded data.
  • the encoding unit 115 supplies the encoded data to the storage buffer 116.
  • the encoding unit 115 can encode the orthogonal transform maximum size identification information supplied from the control unit 101, generate a bit string, multiplex the bit string, and generate encoded data. Thereby, as described above with reference to FIG. 1, the encoded data (bit stream) including the orthogonal transform maximum size identification information is transmitted.
  • the accumulation buffer 116 temporarily stores the encoded data obtained by the encoding unit 115. At a predetermined timing, the accumulation buffer 116 outputs the held encoded data to the outside of the image encoding device 12 as, for example, a bit stream or the like. For example, the encoded data is transmitted to the decoding side via an arbitrary recording medium, an arbitrary transmission medium, an arbitrary information processing device, or the like. That is, the accumulation buffer 116 is also a transmission unit that transmits encoded data (bit stream).
  • the inverse quantization unit 117 performs a process related to inverse quantization. For example, the inverse quantization unit 117 receives the quantization transformation coefficient level supplied from the quantization unit 114 and the transformation information Tinfo supplied from the control unit 101, and performs quantization based on the transformation information Tinfo. Scale (inverse quantization) the value of the transform coefficient level level. Note that the inverse quantization is an inverse process of the quantization performed in the quantization unit 114. The inverse quantization unit 117 supplies the transform coefficient Coeff_IQ obtained by such inverse quantization to the inverse orthogonal transform unit 118.
  • the inverse orthogonal transform unit 118 performs a process related to the inverse orthogonal transform.
  • the inverse orthogonal transform is one mode of the orthogonal transform.
  • the inverse orthogonal transform unit 118 receives the transform coefficient Coeff_IQ supplied from the inverse quantization unit 117 and the transform information Tinfo supplied from the control unit 101, and converts the transform coefficient Coeff_IQ based on the transform information Tinfo.
  • An inverse orthogonal transform is performed on the result to derive a prediction residual D ′.
  • the inverse orthogonal transform is an inverse process of the orthogonal transform performed in the orthogonal transform unit 113.
  • the inverse orthogonal transform unit 118 supplies the prediction residual D ′ obtained by such an inverse orthogonal transform to the arithmetic unit 119. Since the inverse orthogonal transform unit 118 is the same as the inverse orthogonal transform unit (described later) on the decoding side, the description (described later) on the decoding side can be applied to the inverse orthogonal transform unit 118.
  • the calculation unit 119 receives the prediction residual D ′ supplied from the inverse orthogonal transform unit 118 and the prediction image P supplied from the prediction unit 122 as inputs.
  • the operation unit 119 supplies the derived local decoded image R local to the in-loop filter unit 120 and the frame memory 121.
  • the in-loop filter unit 120 performs a process related to the in-loop filter process.
  • the in-loop filter unit 120 includes a local decoded image R local supplied from the arithmetic unit 119, filter information Finfo supplied from the control unit 101, and an input image (original image) supplied from the rearrangement buffer 111.
  • Enter Information input to the in-loop filter unit 120 is arbitrary, and information other than these information may be input. For example, if necessary, the prediction mode, motion information, code amount target value, quantization parameter QP, picture type, block (CU, CTU, etc.) information and the like may be input to the in-loop filter unit 120. Good.
  • the loop filter unit 120 based on the filter information FInfo, performs appropriate filter processing on the local decoded image R local.
  • the in-loop filter unit 120 also uses the input image (original image) and other input information for the filtering process as needed.
  • the in-loop filter unit 120 includes a bilateral filter, a deblocking filter (DBF (DeBlocking Filter)), an adaptive offset filter (SAO (Sample Adaptive Offset)), and an adaptive loop filter.
  • DPF DeBlocking Filter
  • SAO Sample Adaptive Offset
  • ALF Adaptive @ Loop @ Filter
  • the filter processing performed by the in-loop filter unit 120 is arbitrary, and is not limited to the above example.
  • the in-loop filter unit 120 may use a Wiener filter or the like.
  • the in-loop filter unit 120 supplies the filtered local decoded image R local to the frame memory 121.
  • the in-loop filter unit 120 supplies information about the filter to the encoding unit 115.
  • the frame memory 121 performs processing relating to storage of data relating to an image. For example, the frame memory 121, and a local decoded image R local supplied from the arithmetic operation unit 119 inputs the filtered local decoded image R local supplied from the in-loop filter unit 120, holds it (memory) . Further, the frame memory 121 reconstructs and holds the decoded image R for each picture using the local decoded image R local (stores the decoded image R in the buffer in the frame memory 121). The frame memory 121 supplies the decoded image R (or a part thereof) to the prediction unit 122 in response to a request from the prediction unit 122.
  • the prediction unit 122 performs a process related to generation of the predicted image P. For example, the prediction unit 122 calculates the prediction mode information Pinfo supplied from the control unit 101, the input image (original image) supplied from the rearrangement buffer 111, and the decoded image R (or a part thereof) read from the frame memory 121. Is input. The prediction unit 122 performs prediction processing such as inter prediction or intra prediction using the prediction mode information Pinfo and the input image (original image), performs prediction with reference to the decoded image R as a reference image, and performs prediction based on the prediction result. To perform a motion compensation process to generate a predicted image P. The prediction unit 122 supplies the generated prediction image P to the calculation unit 112 and the calculation unit 119. Further, the prediction unit 122 supplies the prediction mode selected by the above processing, that is, information on the optimal prediction mode to the encoding unit 115 as necessary.
  • the rate control unit 123 performs processing related to rate control. For example, the rate control unit 123 controls the rate of the quantization operation of the quantization unit 114 based on the code amount of the coded data stored in the storage buffer 116 so that overflow or underflow does not occur.
  • FIG. 5 is a block diagram illustrating a configuration example of an embodiment of an image decoding device according to the first embodiment of the present disclosure.
  • the image decoding device 13 illustrated in FIG. 5 is a device that decodes encoded data obtained by encoding a prediction residual between an image and a prediction image thereof, such as AVC or HEVC.
  • the image decoding device 13 implements the technology described in Non-Patent Document 1, Non-Patent Document 2, or Non-Patent Document 3, and performs a moving image by a method based on a standard described in any of those documents.
  • the coded data obtained by coding the image data of the image is decoded.
  • the image decoding device 13 decodes the encoded data (bit stream) generated by the image encoding device 12 described above.
  • FIG. 5 illustrates main components such as a processing unit and a flow of data, and not all components illustrated in FIG. 5 are illustrated. That is, in the image decoding device 13, a processing unit not shown as a block in FIG. 5 may exist, or a process or data flow not shown as an arrow in FIG. 5 may exist.
  • the image decoding device 13 includes an accumulation buffer 211, a decoding unit 212, an inverse quantization unit 213, an inverse orthogonal transform unit 214, an operation unit 215, an in-loop filter unit 216, a rearrangement buffer 217, a frame memory 218, and The prediction unit 219 is provided.
  • the prediction unit 219 includes an intra prediction unit and an inter prediction unit (not shown).
  • the image decoding device 13 is a device for generating moving image data by decoding encoded data (bit stream).
  • the accumulation buffer 211 acquires and holds (stores) the bit stream input to the image decoding device 13.
  • the storage buffer 211 supplies the stored bit stream to the decoding unit 212 at a predetermined timing or when a predetermined condition is satisfied.
  • the decoding unit 212 performs a process related to image decoding. For example, the decoding unit 212 receives the bit stream supplied from the accumulation buffer 211 as input, performs variable length decoding of the syntax value of each syntax element from the bit string according to the definition of the syntax table, and derives parameters. I do.
  • the parameters derived from the syntax elements and the syntax values of the syntax elements include, for example, information such as header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, residual information Rinfo, and filter information Finfo. That is, the decoding unit 212 parses (analyzes and acquires) such information from the bit stream. The information will be described below.
  • the header information Hinfo includes, for example, header information such as VPS (Video Parameter Set) / SPS (Sequence Parameter Set) / PPS (PicTUre Parameter Set) / SH (slice header).
  • the header information Hinfo includes, for example, an image size (horizontal width PicWidth, vertical width PicHeight), bit depth (luminance bitDepthY, color difference bitDepthC), color difference array type ChromaArrayType, and maximum CU size MaxCUSize / minimum value MinCUSize and quadtree division ( Maximum depth MaxQTDepth / Minimum depth MinQTDepth of Quad-tree partition) Maximum depth MaxBTDepth / Minimum depth MinBTDepth of binary tree partition (Binary-tree partition), maximum value MaxTSSize of conversion skip block (also called maximum conversion skip block size) ), And information defining an on / off flag (also referred to as a valid flag) of each encoding tool.
  • an image size horizontal width PicWidth, vertical width PicHeight
  • bit depth luminance bitDepthY, color difference bitDepthC
  • color difference array type ChromaArrayType color difference array type ChromaArrayType
  • the on / off flags of the coding tool included in the header information Hinfo there are on / off flags related to the following conversion and quantization processing.
  • the on / off flag of the encoding tool can also be interpreted as a flag indicating whether or not syntax related to the encoding tool exists in encoded data.
  • the value of the on / off flag is 1 (true), it indicates that the encoding tool can be used.
  • the value of the on / off flag is 0 (false)
  • Inter-component prediction enable flag (ccp_enabled_flag): Flag information indicating whether inter-component prediction (CCP (Cross-Component Prediction), also referred to as CC prediction) is available. For example, when the flag information is “1” (true), it is indicated that it can be used, and when it is “0” (false), it is indicated that it cannot be used.
  • CCP Cross-Component Prediction
  • CCP This CCP is also called inter-component linear prediction (CCLM or CCLMP).
  • CCLM inter-component linear prediction
  • the prediction mode information Pinfo includes, for example, information such as size information PBSize (prediction block size) of the processing target PB (prediction block), intra prediction mode information IPinfo, and motion prediction information MVinfo.
  • the ⁇ ⁇ intra prediction mode information IPinfo includes, for example, JCTVC-W1005, 7.3.8.5lagcoding Unit syntax, prev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode, and a luminance intra prediction mode IntraPredModeY derived from the syntax.
  • the intra prediction mode information IPinfo includes, for example, an inter-component prediction flag (ccp_flag (cclmp_flag)), a multi-class linear prediction mode flag (mclm_flag), a chrominance sample position type identifier (chroma_sample_loc_type_idx), a chrominance MPM identifier (chroma_mpm_idx), and , A luminance intra prediction mode (IntraPredModeC) derived from these syntaxes, and the like.
  • ccp_flag cclmp_flag
  • mclm_flag multi-class linear prediction mode flag
  • chroma_sample_loc_type_idx chrominance sample position type identifier
  • chroma_mpm_idx chrominance MPM identifier
  • the multi-class linear prediction mode flag (mclm_flag) is information on the mode of linear prediction (linear prediction mode information). More specifically, the multi-class linear prediction mode flag (mclm_flag) is flag information indicating whether to set the multi-class linear prediction mode. For example, "0" indicates a one-class mode (single-class mode) (for example, CCLMP), and "1" indicates a two-class mode (multi-class mode) (for example, MCLMP). .
  • the chrominance sample position type identifier (chroma_sample_loc_type_idx) is an identifier for identifying the type of the pixel position of the chrominance component (also referred to as chrominance sample position type). For example, when the color difference array type (ChromaArrayType), which is information on the color format, indicates the 420 format, the color difference sample position type identifier is assigned as follows.
  • the chrominance sample position type identifier (chroma_sample_loc_type_idx) is transmitted (stored in) as information (chroma_sample_loc_info ()) regarding the pixel position of the chrominance component.
  • the chrominance MPM identifier (chroma_mpm_idx) is an identifier indicating which prediction mode candidate in the chrominance intra prediction mode candidate list (intraPredModeCandListC) is designated as the chrominance intra prediction mode.
  • the information included in the prediction mode information Pinfo is arbitrary, and information other than these information may be included.
  • the conversion information Tinfo includes, for example, the following information.
  • the information included in the conversion information Tinfo is arbitrary, and information other than these information may be included.
  • Conversion skip flag (ts_flag): This flag indicates whether or not (reverse) primary conversion and (reverse) secondary conversion are skipped.
  • Scan identifier (scanIdx) Quantization parameter (qp) Quantization matrix (scaling_matrix (for example, JCTVC-W1005, 7.3.4 Scaling list data syntax))
  • the residual information Rinfo (for example, see 7.3.8.11 Residual Coding syntax of JCTVC-W1005) includes, for example, the following syntax.
  • cbf (coded_block_flag): residual data existence flag last_sig_coeff_x_pos: last non-zero coefficient X coordinate last_sig_coeff_y_pos: last non-zero coefficient Y coordinate coded_sub_block_flag: sub-block non-zero coefficient existence flag sig_coeff_flag: non-zero coefficient existence flag gr1_flag: non-zero coefficient Flag indicating whether it is greater than 1 (also called GR1 flag)
  • gr2_flag Flag indicating whether the level of the non-zero coefficient is greater than 2 (also referred to as GR2 flag)
  • sign_flag code indicating the sign of the non-zero coefficient (also called sign code) coeff_abs_level_remaining: residual level of non-zero coefficient (also called non-zero coefficient residual level), etc.
  • the information included in the residual information Rinfo is arbitrary, and information other than these information may be included.
  • the filter information Finfo includes, for example, control information on each of the following filtering processes.
  • DPF deblocking filter
  • ALF adaptive loop filter
  • a picture to which each filter is applied information for specifying an area in the picture, filter On / Off control information for each CU, filter on / off control information for slices, and tile boundaries are included. included.
  • the information included in the filter information Finfo is arbitrary, and information other than these information may be included.
  • the decoding unit 212 derives the quantized transform coefficient level at each coefficient position in each transform block with reference to the residual information Rinfo.
  • the decoding unit 212 supplies the quantized transform coefficient level level to the inverse quantization unit 213.
  • the decoding unit 212 supplies the parsed header information Hinfo, prediction mode information Pinfo, quantized transform coefficient level level, transform information Tinfo, and filter information Finfo to each block. Specifically, it is as follows.
  • the header information Hinfo is supplied to the inverse quantization unit 213, the inverse orthogonal transform unit 214, the prediction unit 219, and the in-loop filter unit 216.
  • the prediction mode information Pinfo is supplied to the inverse quantization unit 213 and the prediction unit 219.
  • the transform information Tinfo is supplied to the inverse quantization unit 213 and the inverse orthogonal transform unit 214.
  • the filter information Finfo is supplied to the in-loop filter unit 216.
  • each encoding parameter may be supplied to an arbitrary processing unit.
  • other information may be supplied to an arbitrary processing unit.
  • the inverse quantization unit 213 performs a process related to inverse quantization. For example, the inverse quantization unit 213 receives the transform information Tinfo and the quantized transform coefficient level supplied from the decoding unit 212 as inputs, and scales the value of the quantized transform coefficient level level (inverse) based on the transform information Tinfo. Quantization) to derive a transform coefficient Coeff_IQ after inverse quantization.
  • this inverse quantization is performed as inverse processing of quantization by the quantization unit 114.
  • the inverse quantization is the same processing as the inverse quantization by the inverse quantization unit 117. That is, the inverse quantization unit 117 performs the same processing (inverse quantization) as the inverse quantization unit 213.
  • the inverse quantization unit 213 supplies the derived transform coefficient Coeff_IQ to the inverse orthogonal transform unit 214.
  • the inverse orthogonal transform unit 214 performs a process related to the inverse orthogonal transform.
  • the inverse orthogonal transform unit 214 receives as input the transform coefficient Coeff_IQ supplied from the inverse quantization unit 213 and the transform information Tinfo supplied from the decoding unit 212, and converts the transform coefficient Coeff_IQ based on the transform information Tinfo.
  • An inverse orthogonal transformation process is performed on the result to derive a prediction residual D ′.
  • This inverse orthogonal transformation is performed as inverse processing of the orthogonal transformation by the orthogonal transformation unit 113.
  • the inverse orthogonal transform is a process similar to the inverse orthogonal transform performed by the inverse orthogonal transform unit 118. That is, the inverse orthogonal transform unit 118 performs the same processing (inverse orthogonal transform) as the inverse orthogonal transform unit 214.
  • the inverse orthogonal transform unit 214 supplies the derived prediction residual D ′ to the calculation unit 215.
  • the operation unit 215 supplies the derived local decoded image R local to the in-loop filter unit 216 and the frame memory 218.
  • the in-loop filter unit 216 performs a process related to the in-loop filter process. For example, the in-loop filter unit 216 receives as input the local decoded image R local supplied from the arithmetic unit 215 and the filter information Finfo supplied from the decoding unit 212.
  • the information input to the in-loop filter unit 216 is arbitrary, and information other than these information may be input.
  • the in-loop filter unit 216 appropriately performs a filtering process on the locally decoded image R local based on the filter information Finfo.
  • the in-loop filter unit 216 includes a bilateral filter, a deblocking filter (DBF (DeBlocking Filter)), an adaptive offset filter (SAO (Sample Adaptive Offset)), and an adaptive loop filter.
  • DPF DeBlocking Filter
  • SAO Sample Adaptive Offset
  • ALF Adaptive @ Loop @ Filter
  • the in-loop filter unit 216 performs a filter process corresponding to the filter process performed on the encoding side (for example, the in-loop filter unit 120 of the image encoding device 12 in FIG. 4).
  • the filter processing performed by the in-loop filter unit 216 is optional, and is not limited to the above example.
  • the in-loop filter unit 216 may apply a Wiener filter or the like.
  • the in-loop filter unit 216 supplies the filtered local decoded image R local to the rearrangement buffer 217 and the frame memory 218.
  • the reordering buffer 217 receives the locally decoded image R local supplied from the in-loop filter unit 216 as an input, and holds (stores) it.
  • the reordering buffer 217 reconstructs and holds (stores in the buffer) the decoded image R for each picture using the local decoded image R local .
  • the rearrangement buffer 217 rearranges the obtained decoded images R from decoding order to reproduction order.
  • the rearrangement buffer 217 outputs the rearranged decoded image group R to the outside of the image decoding device 13 as moving image data.
  • the frame memory 218 performs a process related to storage of data related to an image. For example, the frame memory 218 receives the local decoded image R local supplied from the operation unit 215 as an input, reconstructs a decoded image R for each picture unit, and stores the reconstructed image R in a buffer in the frame memory 218.
  • the frame memory 218 receives the in-loop filtered local decoded image R local supplied from the in-loop filter unit 216 as an input, reconstructs a decoded image R for each picture unit, Store in buffer.
  • the frame memory 218 appropriately supplies the stored decoded image R (or a part thereof) to the prediction unit 219 as a reference image.
  • the frame memory 218 may store header information Hinfo, prediction mode information Pinfo, conversion information Tinfo, filter information Finfo, and the like related to generation of a decoded image.
  • the prediction unit 219 performs a process related to generation of the predicted image P. For example, the prediction unit 219 receives the prediction mode information Pinfo supplied from the decoding unit 212, performs prediction using a prediction method specified by the prediction mode information Pinfo, and derives a predicted image P. At the time of the derivation, the prediction unit 219 uses the decoded image R (or a part thereof) before or after the filter, which is specified by the prediction mode information Pinfo and stored in the frame memory 218, as a reference image. The prediction unit 219 supplies the derived prediction image P to the calculation unit 215.
  • FIG. 6 is a flowchart illustrating an image encoding process performed by the image encoding device 12 according to the first embodiment of the present disclosure.
  • the rearrangement buffer 111 is controlled by the control unit 101 to rearrange the order of the frames of the input moving image data from the display order to the encoding order (step S11).
  • the control unit 101 sets a processing unit (performs block division) for the input image held by the rearrangement buffer 111 (step S12).
  • the control unit 101 determines (sets) an encoding parameter for the input image held by the reordering buffer 111 (step S13).
  • the prediction unit 122 performs a prediction process and generates a predicted image P or the like in an optimal prediction mode (Step S14). For example, in this prediction process, the prediction unit 122 performs intra prediction to generate a prediction image P or the like in an optimal intra prediction mode, and performs inter prediction to generate a prediction image P or the like in an optimal inter prediction mode. From these, an optimal prediction mode is selected based on a cost function value or the like.
  • the calculation unit 112 calculates a difference between the input image and the predicted image P in the optimal mode selected by the prediction processing in step S14 (step S15). That is, the calculation unit 112 generates the prediction residual D between the input image and the prediction image P.
  • the data amount of the prediction residual D obtained in this way is reduced as compared with the original image data. Therefore, the data amount can be compressed as compared with the case where the image is directly encoded.
  • the orthogonal transform unit 113 performs an orthogonal transform process on the prediction residual D generated by the process of step S15, and derives a transform coefficient Coeff (step S16).
  • the quantization unit 114 quantizes the transform coefficient Coeff obtained by the process of step S16 by using the quantization parameter calculated by the control unit 101, and derives a quantized transform coefficient level (step S17). .
  • the inverse quantization unit 117 inversely quantizes the quantized transform coefficient level generated by the processing in step S17 with a characteristic corresponding to the quantization characteristic in step S17 to derive a transform coefficient Coeff_IQ (step S18). .
  • the inverse orthogonal transform unit 118 performs inverse orthogonal transform on the transform coefficient Coeff_IQ obtained by the process of step S18 by a method corresponding to the orthogonal transform process of step S16, and derives a prediction residual D ′ (step S19). Since the inverse orthogonal transform process is the same as the inverse orthogonal transform process (described later) performed on the decoding side, the description (described later) performed on the decoding side is applied to the inverse orthogonal transform process in step S19. can do.
  • the calculation unit 119 generates a locally decoded image by adding the prediction image P obtained by the prediction process of step S14 to the prediction residual D ′ derived by the process of step S19 ( Step S20).
  • the in-loop filter unit 120 performs an in-loop filter process on the locally decoded image derived by the process of step S20 (step S21).
  • the frame memory 121 stores the locally decoded image derived by the processing in step S20 and the locally decoded image filtered in step S21 (step S22).
  • the encoding unit 115 encodes the quantized transform coefficient level obtained by the processing in step S17 (step S23). For example, the encoding unit 115 encodes a quantized transform coefficient level, which is information about an image, by arithmetic encoding or the like, and generates encoded data. At this time, the encoding unit 115 encodes various encoding parameters (header information Hinfo, prediction mode information Pinfo, and conversion information Tinfo). Furthermore, the encoding unit 115 derives residual information RInfo from the quantized transform coefficient level level, and encodes the residual information RInfo.
  • a quantized transform coefficient level which is information about an image, by arithmetic encoding or the like
  • the accumulation buffer 116 accumulates the encoded data thus obtained, and outputs the encoded data to the outside of the image encoding device 12, for example, as a bit stream (Step S24).
  • This bit stream is transmitted to the decoding side via a transmission path or a recording medium, for example.
  • the rate control unit 123 performs rate control as needed.
  • step S24 ends, the image encoding processing ends.
  • FIG. 7 is a flowchart illustrating an image decoding process performed by the image decoding device 13 according to the first embodiment of the present disclosure.
  • the accumulation buffer 211 acquires and holds (accumulates) encoded data (bit stream) supplied from outside the image decoding device 13 (step S31).
  • the decoding unit 212 decodes the encoded data (bit stream) to obtain a quantized transform coefficient level (step S32).
  • the decoding unit 212 parses (analyzes and acquires) various encoding parameters from the encoded data (bit stream) by this decoding.
  • the inverse quantization unit 213 performs inverse quantization, which is an inverse process of the quantization performed on the encoding side, on the quantized transform coefficient level level obtained by the process of step S32, and obtains a transform coefficient Coeff_IQ. (Step S33).
  • the inverse orthogonal transform unit 214 performs an inverse orthogonal transform process, which is an inverse process of the orthogonal transform process performed on the encoding side, on the transform coefficient Coeff_IQ obtained by the process of step S33, and calculates a prediction residual D ′. Obtain (step S34).
  • the prediction unit 219 performs a prediction process by a prediction method specified by the encoding side based on the information parsed in step S32, and performs prediction by referring to a reference image stored in the frame memory 218.
  • An image P is generated (Step S35).
  • the arithmetic unit 215 adds the prediction residual D 'obtained by the processing of step S34 and the prediction image P obtained by the processing of step S35 to derive a local decoded image R local (step S36).
  • the in-loop filter unit 216 performs an in-loop filter process on the locally decoded image R local obtained by the process of step S36 (step S37).
  • the reordering buffer 217 derives the decoded image R using the filtered local decoded image Rlocal obtained by the processing of step S37, and rearranges the order of the group of decoded images R from decoding order to reproduction order (step S37). S38).
  • the group of decoded images R rearranged in the reproduction order is output to the outside of the image decoding device 13 as a moving image.
  • step S39 ends, the image decoding processing ends.
  • FIG. 8 is a diagram (1) illustrating an example of CU block division according to the first embodiment of the present disclosure.
  • FIG. 9 is a diagram (2) illustrating an example of CU block division according to the first embodiment of the present disclosure.
  • the control unit 101 divides the CU as shown in FIG. Further, as shown in FIG. 9, the control unit 101 can further divide the divided CU. Thus, as shown in FIGS. 8 and 9, even in the case of division, the number of pixels in the height direction and the width direction of the CU is a power of two.
  • FIG. 10 is a diagram illustrating a variation of CU block division according to the first embodiment of the present disclosure. As shown in FIG. 10, when the variation of the CU block division is increased, the number of pixels in the height direction or the width direction of the CU may not be a power of two.
  • the CU has the same size as the TU. That is, it is proposed that the orthogonal transform or the inverse orthogonal transform be performed in CU units. Then, when the block division as shown in FIG. 10 is executed, there are CUs in which the number of pixels in the width direction or the height direction is not a power of two. For this reason, the orthogonal transformation and the inverse orthogonal transformation are performed on a CU in which the number of pixels in the width direction or the height direction is not a power of 2, that is, a block in which the number of pixels in the width direction or the height direction is not a power of 2. There are things you need to do.
  • FIG. 11 is a diagram illustrating an example before and after the division of the CU according to the first embodiment of the present disclosure.
  • FIG. 11A is a diagram illustrating an example of a CU before division.
  • FIG. 11B is a diagram illustrating an example of a divided CU.
  • the number of pixels in the width direction of the right region is not a power of 2 due to the division at the boundary. Therefore, when the orthogonal transformation is performed on the right region shown in FIG. 11B, the processing amount increases, and it becomes difficult to improve the processing speed. Therefore, in the right region shown in FIG. 11B, the orthogonal transform is skipped and quantization is performed.
  • FIG. 12 is a flowchart illustrating an example of the encoding process according to the first embodiment of the present disclosure.
  • the control unit 101 divides the CU according to the boundary of the motion (step S41).
  • the control unit 101 determines whether or not the number of pixels in the height direction and the width direction of the processing target CU after the division is a power of 2 (step S42).
  • the orthogonal transformation unit 113 performs orthogonal transformation on the prediction residual D (step S43).
  • the control unit 101 sets 1 to a residual data presence / absence flag (cbf) indicating whether or not the prediction residual D is included (step S44). That is, the control unit 101 sets the presence of the prediction residual D in the residual data presence / absence flag (cbf).
  • the accumulation buffer 116 outputs a bit stream including the prediction residual D and the residual data presence / absence flag (cbf) (step S45).
  • step S42 when the number of pixels in either the height direction or the width direction of the CU is not a power of 2 (step S42; No), the control unit 101 executes Transform @ skip or PCM (Pulse @ Code @ Modulation).
  • Transform @ skip or PCM Pulse @ Code @ Modulation
  • the orthogonal transformation for the prediction residual D is skipped by the processing such as the mode, and the orthogonal transformation is not performed (step S46).
  • the orthogonal transformation unit 113 sets 0 indicating that the prediction residual D is not included in the residual data presence / absence flag (cbf) (step S47).
  • the accumulation buffer 116 outputs a bit stream including the predicted image P on which the orthogonal transformation has not been performed and the residual data presence / absence flag (cbf) indicating that the orthogonally transformed prediction residual D is not included. (Step S48).
  • the image encoding device 12 when the number of pixels in either the height direction or the width direction of the CU is not a power of 2, the image encoding device 12 does not perform the orthogonal transform, thereby increasing the processing amount. Can be suppressed.
  • FIG. 13 is a flowchart illustrating an example of the decoding process according to the first embodiment of the present disclosure.
  • the decoding unit 212 determines whether or not the bitstream includes the prediction residual D based on the residual data presence / absence flag (cbf) included in the bitstream output from the image encoding device 12 ( Step S51).
  • Step S51 When the prediction residual D is included in the bit stream (Step S51; Yes), the decoding unit 212 performs an inverse orthogonal transform on the prediction residual D included in the bit stream to the inverse orthogonal transform unit 214.
  • the program is executed (step S52).
  • step S51 when the prediction residual D is not included in the bit stream (step S51; No), the decoding unit 212 performs an inverse orthogonal transform on the predicted image P included in the bit stream by the inverse orthogonal transform unit 214. Is not executed (step S53).
  • the image encoding device 12 when the number of pixels in either the height direction or the width direction of the CU is not a power of 2, the image encoding device 12 does not perform the orthogonal transform, thereby increasing the processing amount. Can be suppressed.
  • the execution of the orthogonal transform and the inverse orthogonal transform is controlled based on whether or not the number of pixels in the height direction and the width direction of the processing target CU after division is a power of two.
  • the prediction mode is further controlled.
  • the prediction modes include inter prediction that generates a predicted image based on an image different from the frame image to be processed and intra prediction that generates a predicted image based on the frame image to be processed.
  • intra prediction the amount of prediction residual D increases, and in many cases, orthogonal transformation must be performed.
  • inter prediction a higher definition image can be obtained as compared with the intra prediction. Therefore, when the number of pixels in the height direction and the width direction of the CU to be processed after division is not a power of 2, it is fixed to inter prediction.
  • FIG. 14 is a flowchart illustrating an example of the encoding process according to the modification (1) of the first embodiment of the present disclosure.
  • the control unit 101 determines whether or not the number of pixels in the height direction and the width direction of the processing target CU after the division is a power of 2 (step S61).
  • the prediction unit 122 executes intra prediction or inter prediction according to the image and executes It generates prediction mode information Pinfo indicating the predicted mode (step S62).
  • the prediction mode information Pinfo includes mode information (pred_mode_flag) indicating which of intra prediction and inter prediction is to be executed. Then, the accumulation buffer 116 outputs a bit stream including the prediction mode information Pinfo.
  • step S61 when the number of pixels in either the height direction or the width direction of the CU is not a power of 2 (step S61; No), the prediction unit 122 performs inter prediction and generates prediction mode information Pinfo. No (step S63).
  • the accumulation buffer 116 outputs a bit stream that does not include the prediction mode information Pinfo. Therefore, the image encoding device 12 can reduce the code amount.
  • FIG. 15 is a flowchart illustrating an example of the decoding process according to the modification (1) of the first embodiment of the present disclosure.
  • the decoding unit 212 determines whether the received bit stream includes the prediction mode information Pinfo (Step S71).
  • the prediction unit 122 performs intra prediction or inter prediction according to the prediction mode information Pinfo (step S72).
  • Step S71 when the bit stream does not include the prediction mode information Pinfo (Step S71; No), the prediction unit 122 performs the inter prediction (Step S73).
  • the execution of the orthogonal transform and the inverse orthogonal transform is controlled based on whether or not the number of pixels in the height direction and the width direction of the processing target CU after division is a power of two.
  • the reason why the orthogonal transformation is not performed when the number of pixels of the CU is not a power of 2 is that the processing amount of the orthogonal transformation increases and the processing speed decreases.
  • the size of the CU is smaller than the threshold value, it is considered that the influence on the processing speed is small even if the processing amount of the orthogonal transform increases. Therefore, even if the number of pixels in the height direction and the width direction of the processing target CU after the division is not a power of 2, the orthogonal transformation may be executed.
  • FIG. 16 is a flowchart illustrating an example of the encoding process according to the modified example (2) of the first embodiment of the present disclosure.
  • the control unit 101 determines whether or not the number of pixels in the height direction and the width direction of the processing target CU after the division is a power of 2 (step S81).
  • the orthogonal transformation unit 113 performs orthogonal transformation on the prediction residual D (step S82).
  • the orthogonal transform unit 113 sets 1 to a residual data presence / absence flag (cbf) indicating whether or not the prediction residual D is included (step S83). That is, the orthogonal transform unit 113 sets the presence of the prediction residual D in the residual data presence / absence flag (cbf).
  • step S81 when the number of pixels in either the height direction or the width direction of the CU is not a power of 2 (step S81; No), the control unit 101 determines whether the size of the CU is smaller than the threshold value Is determined (step S84).
  • the orthogonal transform unit 113 performs orthogonal transform on the prediction residual D in Step S82.
  • step S84 if the size of the CU is equal to or larger than the threshold (step S84; Yes), the control unit 101 does not execute the orthogonal transform on the orthogonal transform unit 113 by processing such as Transform @ skip or PCM mode (step S85).
  • the orthogonal transformation unit 113 sets 0 indicating that the prediction residual D is not included in the residual data presence / absence flag (cbf) (step S86).
  • the image encoding device 12 executes the orthogonal transform when the size of the CU is smaller than the threshold, and does not execute the orthogonal transform when the size of the CU is larger than the threshold. Therefore, the image encoding device 12 can suppress an increase in the processing amount.
  • the image decoding device 13 executes the same processing as in the flowchart shown in FIG. That is, the image decoding device 13 performs the inverse orthogonal transform process based on the residual data presence / absence flag (cbf).
  • the execution of the orthogonal transform and the inverse orthogonal transform is controlled based on whether or not the number of pixels in the height direction and the width direction of the processing target CU after division is a power of two.
  • the number of pixels in the height direction and the width direction of the processing target CU after division is not a power of 2
  • the number of pixels in the height direction and the width direction becomes a power of 2.
  • Divide to form CU In this manner, by dividing the CU, the number of pixels of the CU whose number of pixels is not a power of 2 is changed to a power of 2.
  • FIG. 17 is a flowchart illustrating an example of the encoding process according to the second embodiment of the present disclosure.
  • the control unit 101 determines whether or not the number of pixels in the height direction and the width direction of the processing target CU after division is a power of 2 (step S91).
  • the orthogonal transformation unit 113 performs orthogonal transformation on the prediction residual D (step S92).
  • the orthogonal transform unit 113 sets 1 to a residual data presence / absence flag (cbf) indicating whether or not the prediction residual D is included (step S93). That is, the orthogonal transform unit 113 sets the presence of the prediction residual D in the residual data presence / absence flag (cbf).
  • step S91 if the number of pixels in either the height direction or the width direction of the CU is not a power of 2 (step S91; No), the control unit 101 determines whether the number of pixels in the height direction or the width direction is The CU whose one pixel number is not a power of 2 is further divided (step S94). At this time, the control unit 101 divides the CU so that the number of pixels in the height direction and the width direction is a power of two. Then, control goes to a step S92.
  • step S92 is an example, and the process may proceed to step S91. That is, even after the division of the CU, it is determined whether the number of pixels in either the height direction or the width direction of the CU is a power of 2, and if not, the CU is divided again. May be.
  • FIG. 18 is a diagram illustrating an example of a division mode of a CU according to the second embodiment of the present disclosure.
  • FIG. 18A shows a CU before division.
  • FIG. 18B shows the CU after the first division.
  • FIG. 18C shows the CU after the second division.
  • the second CU division shown in FIG. 18C is executed. In this way, by performing the symmetrical division, the number of pixels in the width direction of the CU becomes a power of two.
  • FIG. 19 is a diagram illustrating an example of a division mode of a CU according to the second embodiment of the present disclosure.
  • FIG. 19A shows a CU before division.
  • FIG. 19B shows the CU after the first division.
  • FIG. 19C shows the CU after the second division.
  • the second CU division shown in FIG. 19C is executed. In this way, by dividing vertically, the number of pixels in the height direction of the CU becomes a power of two.
  • FIG. 20 is a diagram illustrating an example of a division mode of a CU according to the second embodiment of the present disclosure.
  • FIG. 20A shows the CU after division.
  • FIG. 20B shows a state in which the CU shown in FIG.
  • FIG. 20C shows a state in which the CU shown in FIG.
  • the image is not limited to the vertical symmetry or the left / right symmetry, and may be divided so as to be asymmetric.
  • the image encoding device 12 divides the CU in such a manner that the number of pixels in the height direction and the width direction of the CU is a power of 2, and performs orthogonal transformation. Therefore, the image decoding device 13 performs the inverse orthogonal transform on each block.
  • the execution of the orthogonal transform and the inverse orthogonal transform is controlled based on whether or not the number of pixels in the height direction and the width direction of the processing target CU after division is a power of two.
  • orthogonal transformation and inverse orthogonal transformation are performed on a direction in which the number of pixels is a power of two.
  • FIG. 21 is a diagram illustrating a processing procedure of the orthogonal transform for a CU having a power of 2 in the height direction and the width direction according to the third embodiment of the present disclosure.
  • FIG. 21A is a diagram illustrating that orthogonal transformation is performed for each line in the width direction.
  • FIG. 21B is a diagram showing that orthogonal transformation is performed for each line in the height direction.
  • the orthogonal transformation unit 113 performs the orthogonal transformation for each line in the width direction as shown in FIG. Next, as shown in FIG. 21B, the orthogonal transformation is performed on the coefficients after the orthogonal transformation for each line in the height direction.
  • the direction in which the orthogonal transformation is performed may be performed first in the height direction and then performed in the width direction. The same result is theoretically obtained regardless of which of the width direction and the height direction is executed first. However, if the rounding process is performed with an intermediate calculation precision, an error occurs if the order of the direction in which the orthogonal transformation is performed is changed. Therefore, it is preferable to define which direction is to be executed first, and to execute the orthogonal transform in the specified order.
  • the orthogonal transform is performed in the reverse order. That is, when the width direction is first executed in the orthogonal transformation, the inverse orthogonal transformation is first executed in the height direction. Next, an inverse orthogonal transform is performed in the width direction.
  • FIG. 22 is a diagram illustrating a CU in which the number of pixels in the height direction is not a power of 2 according to the third embodiment of the present disclosure.
  • FIG. 22A shows that orthogonal transformation is performed because the number of pixels in the width direction is a power of two.
  • FIG. 22B shows that the orthogonal transformation is not performed because the number of pixels in the height direction is not a power of two. Then, as shown in FIG. 22, when the number of pixels in the height direction is not a power of 2, orthogonal transformation is performed because the number of pixels in the width direction is a power of 2, and the orthogonal transformation in the height direction is skipped. And do not run.
  • FIG. 23 is a diagram illustrating a CU in which the number of pixels in the width direction is not a power of 2 according to the third embodiment of the present disclosure.
  • FIG. 23A shows that orthogonal transformation is not performed because the number of pixels in the width direction is not a power of two.
  • FIG. 23B shows that orthogonal transformation is performed because the number of pixels in the height direction is a power of two. Then, as shown in FIG. 23, when the number of pixels in the width direction is not a power of 2, the orthogonal transform in the width direction is skipped and not executed, and the orthogonal transform in the height direction is a power of 2. It indicates that you want to run.
  • the execution of the orthogonal transform and the inverse orthogonal transform is controlled based on whether or not the number of pixels in the height direction and the width direction of the processing target CU after division is a power of two.
  • the maximum area where the number of pixels in the height direction and the width direction is a power of 2 inside a CU in which either the number of pixels in the height direction or the width direction is not a power of 2 Perform an orthogonal transformation on. Then, the orthogonal transform is not performed on the remaining area excluding the maximum area.
  • an RD (Rate Distortion) cost when the orthogonal transformation is performed is calculated. Also, the RD costs are compared for each area. This makes it possible to determine an optimal area based on the RD cost.
  • FIG. 24 is a diagram illustrating an example of a variation of an area in which orthogonal transform is performed according to the fourth embodiment of the present disclosure.
  • the number of pixels in the width direction of the right region is not a power of two. Therefore, it is shown that the orthogonal transformation is performed on the maximum region where the number of pixels is a power of 2 and the height direction and the width direction have the same number of pixels in the right region. That is, in the right region, the orthogonal transformation is performed on the maximum square region in which the number of pixels is a power of two.
  • FIG. 24A shows that orthogonal transformation is performed on the upper left square area of the right area.
  • FIG. 24B shows that the orthogonal transformation is performed on the upper right square area of the right area.
  • FIG. 24C shows that the orthogonal transformation is performed on the lower left square area of the right area.
  • FIG. 24D shows that orthogonal transformation is performed on a square area at the lower right of the right area.
  • FIG. 25 is a flowchart illustrating an example of the encoding process according to the fourth embodiment of the present disclosure.
  • the encoding process illustrated in FIG. 25 indicates that the RD cost is calculated by performing the orthogonal transform on each area illustrated in FIG.
  • the control unit 101 causes the orthogonal transformation unit 113 to perform orthogonal transformation on the upper left area shown in FIG. 24A, and calculates the RD cost for the upper left area (step S101). Note that the control unit 101 does not cause the orthogonal transformation unit 113 to perform the orthogonal transformation on the remaining area excluding the maximum area.
  • the control unit 101 causes the orthogonal transformation unit 113 to perform orthogonal transformation on the upper right area shown in FIG. 24B, and calculates the RD cost for the upper right area (step S102). Note that the control unit 101 does not cause the orthogonal transformation unit 113 to perform the orthogonal transformation on the remaining area excluding the maximum area.
  • the control unit 101 causes the orthogonal transformation unit 113 to perform orthogonal transformation on the lower left area shown in FIG. 24C, and calculates the RD cost for the lower left area (step S103). Note that the control unit 101 does not cause the orthogonal transformation unit 113 to perform the orthogonal transformation on the remaining area excluding the maximum area.
  • the control unit 101 causes the orthogonal transformation unit 113 to perform orthogonal transformation in the lower right area shown in FIG. 24D, and calculates the RD cost for the lower right area (step S104). Note that the control unit 101 does not cause the orthogonal transformation unit 113 to perform the orthogonal transformation on the remaining area excluding the maximum area.
  • Step S105 It is determined whether or not the upper left RD cost is the minimum among the RD costs calculated in steps S101 to S104 (step S105).
  • step S105 If the RD cost in the upper left is not the minimum (step S105; No), it is determined whether the RD cost in the upper right is the minimum among the RD costs calculated in steps S101 to S104 (step S107).
  • step S107 If the upper right RD cost is not the minimum (step S107; No), it is determined whether the lower left RD cost is the minimum among the RD costs calculated in steps S101 to S104 (step S109).
  • the quantization unit 114 quantizes the coefficient after the orthogonal transformation (step S112).
  • the accumulation buffer 116 outputs a bit stream including the quantized signal and position information indicating the position of the orthogonal transform (step S113).
  • FIG. 26 is a flowchart illustrating an example of the decoding process according to the fourth embodiment of the present disclosure. Then, the decoding process illustrated in FIG. 26 performs the inverse orthogonal transform on the orthogonally transformed region based on the position information indicating the position of the orthogonal transform.
  • the accumulation buffer 211 receives the bit stream including the quantized signal and the position information (tr_pos) indicating the position of the orthogonal transform (step S121).
  • the inverse quantization unit 213 inversely quantizes the quantized signal (Step S122).
  • the decoding unit 212 extracts position information (tr_pos) indicating the position where the orthogonal transform has been performed from the bit stream (step S123).
  • the decoding unit 212 When the position information (tr_pos) indicates that the orthogonal transformation has been performed at the upper left (Step S124; Yes), the decoding unit 212 performs the inverse orthogonal transformation on the upper left area shown in FIG. 214 is made to perform an inverse orthogonal transform (step S125).
  • the decoding unit 212 performs the inverse orthogonal transform on the upper right area shown in FIG. 214 is made to perform an inverse orthogonal transform (step S127).
  • the decoding unit 212 When the position information (tr_pos) indicates that the orthogonal transformation has been performed at the lower left (Step S128; Yes), the decoding unit 212 performs the inverse orthogonal transformation on the lower left area shown in FIG. 214 is made to perform an inverse orthogonal transform (step S129).
  • the decoding unit 212 When the position information (tr_pos) does not indicate that the orthogonal transformation has been performed at the lower left (Step S128; No), the decoding unit 212 performs the inverse orthogonal transformation on the lower right area shown in FIG. The unit 214 performs the inverse orthogonal transform (step S130).
  • orthogonal transformation was performed on the largest square area where the number of pixels was a power of two.
  • the area where the orthogonal transformation is performed is not limited to a square, but may be a rectangle.
  • FIG. 27 is a diagram illustrating an example of a variation of the region in which the orthogonal transform is performed according to the fourth embodiment of the present disclosure.
  • FIG. 27A shows that orthogonal transformation is performed on the upper left rectangular area of the right area.
  • FIG. 27B shows that orthogonal transformation is performed on the upper right rectangular area of the right area.
  • the number of pixels in the width direction of the right region is not a power of two.
  • the number of pixels in the height direction of the right region is a power of two. Therefore, it is shown that the orthogonal transformation is performed on the maximum region where the number of pixels in the width direction is a power of 2 in the right region.
  • the orthogonal transformation is performed on the maximum region of the rectangle in which the number of pixels is a power of 2 in the right region. This indicates that the orthogonal transformation is not performed on the remaining area excluding the maximum area.
  • the number of pixels in the height direction and the width direction is a power of 2 from a CU in which either the number of pixels in the height direction or the width direction after division is not a power of 2.
  • An orthogonal transformation was performed on the maximum region where In the modified example (1) of the fourth embodiment, the maximum region where the number of pixels in the height direction or the width direction is a power of 2 is divided from the region left by the orthogonal transformation with respect to the maximum region, and the divided region is divided into the divided regions. Is recursively repeated. That is, the division of the maximum region and the orthogonal transformation to the divided regions are recursively repeated until there is no region in which the orthogonal transformation has not been performed.
  • FIG. 28 illustrates a case where the orthogonal transformation is recursively performed on a maximum area where the number of pixels is a power of 2 with respect to an area remaining in the orthogonal transformation according to the modification (1) of the fourth embodiment of the present disclosure. It is a figure showing an example of.
  • FIG. 28 divides the maximum region where the number of pixels is a power of 2 from the left side.
  • the entire area on the right that remains after performing orthogonal transformation on the area on the left is the maximum area where the number of pixels is a power of two. Therefore, it is shown that the maximum area is divided and the orthogonal transformation is performed on the divided right area.
  • the control unit 101 further divides the maximum area where the number of pixels in the height direction or the width direction becomes a power of 2 from the area left by the orthogonal transformation for the maximum area. Further, the control unit 101 causes the orthogonal transform unit 113 to perform orthogonal transform on the divided maximum area. Then, the control unit 101 divides the maximum region and repeatedly executes the process of executing the orthogonal transformation on the divided region until there is no region where the number of pixels in the height direction or the width direction is not a power of two.
  • FIG. 29 illustrates recursively executing an orthogonal transform on a region left by the orthogonal transform according to the modification (1) of the fourth embodiment of the present disclosure to a maximum region where the number of pixels is a power of two. It is a figure showing an example in the case of having done.
  • FIG. 29 while FIG. 28 divides the maximum region in which the number of pixels is a power of 2 from the left side, region division and orthogonal transformation are performed from the right side.
  • the image decoding device 13 performs an inverse orthogonal transform on each area on which the orthogonal transform has been performed.
  • FIG. 30 is a block diagram illustrating a configuration example of an embodiment of a computer in which a program for executing the above-described series of processes is installed.
  • the program can be recorded in advance on a hard disk 305 or a ROM 303 as a recording medium built in the computer.
  • the program can be stored (recorded) in a removable recording medium 311 driven by the drive 309.
  • a removable recording medium 311 can be provided as so-called package software.
  • examples of the removable recording medium 311 include a flexible disk, a CD-ROM (Compact Disc Only Memory), an MO (Magneto Optical) disc, a DVD (Digital Versatile Disc), a magnetic disc, and a semiconductor memory.
  • the program can be installed on the computer from the removable recording medium 311 as described above, or can be downloaded to the computer via a communication network or a broadcast network and installed on the built-in hard disk 305. That is, for example, the program is wirelessly transferred from a download site to a computer via an artificial satellite for digital satellite broadcasting, or is transmitted to a computer via a network such as a LAN (Local Area Network) or the Internet by wire. be able to.
  • LAN Local Area Network
  • the ⁇ Computer ⁇ has a built-in CPU (Central Processing Unit) 302, and an input / output interface 310 is connected to the CPU 302 via a bus 301.
  • CPU Central Processing Unit
  • the CPU 302 executes the program stored in the ROM (Read Only Memory) 303 according to the instruction. .
  • the CPU 302 loads the program stored in the hard disk 305 into a RAM (Random Access Memory) 304 and executes the program.
  • the CPU 302 performs the processing according to the above-described flowchart or the processing performed by the configuration of the above-described block diagram. Then, the CPU 302 causes the processing result to be output from the output unit 306 or transmitted from the communication unit 308 via the input / output interface 310 as needed, and further recorded on the hard disk 305, for example.
  • the input unit 307 includes a keyboard, a mouse, a microphone, and the like.
  • the output unit 306 includes an LCD (Liquid Crystal Display), a speaker, and the like.
  • the processing performed by the computer according to the program does not necessarily have to be performed in chronological order according to the order described in the flowchart. That is, the processing performed by the computer according to the program includes processing executed in parallel or individually (for example, parallel processing or processing by an object).
  • the program may be processed by a single computer (processor) or may be processed in a distributed manner by a plurality of computers. Further, the program may be transferred to a remote computer and executed.
  • a system means a set of a plurality of components (devices, modules (parts), etc.), and it does not matter whether all components are in the same housing. Therefore, a plurality of devices housed in separate housings and connected via a network, and one device housing a plurality of modules in one housing are all systems. .
  • the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
  • the configuration described above as a plurality of devices (or processing units) may be configured as one device (or processing unit).
  • a configuration other than those described above may be added to the configuration of each device (or each processing unit).
  • a part of the configuration of a certain device (or processing unit) may be included in the configuration of another device (or other processing unit).
  • the present technology can adopt a configuration of cloud computing in which one function is shared by a plurality of devices via a network and processed jointly.
  • the above-described program can be executed in any device.
  • the device only has to have necessary functions (functional blocks and the like) and be able to obtain necessary information.
  • each step described in the above-described flowchart can be executed by a single device, or can be shared and executed by a plurality of devices. Further, when a plurality of processes are included in one step, the plurality of processes included in the one step can be executed by one device, or can be shared and executed by a plurality of devices. In other words, a plurality of processes included in one step may be executed as a plurality of steps. Conversely, the processing described as a plurality of steps may be collectively executed as one step.
  • the program executed by the computer may be configured so that the processing of the steps for describing the program is executed in chronological order according to the order described in the present specification, or the program may be executed in parallel or called. It may be executed individually at a necessary timing such as time. That is, as long as no inconsistency arises, the processing of each step may be performed in an order different from the order described above. Further, the processing of the steps for describing this program may be executed in parallel with the processing of another program, or may be executed in combination with the processing of another program.
  • the present technology can be applied to any image encoding / decoding method. That is, as long as there is no contradiction with the present technology described above, the specifications of various processes related to image encoding / decoding such as conversion (inverse transformation), quantization (inverse quantization), encoding (decoding), prediction, and the like are arbitrary.
  • the present invention is not limited to the example. Further, some of these processes may be omitted as long as they do not conflict with the present technology described above.
  • the present technology can be applied to a multi-view image encoding / decoding system that performs encoding / decoding of a multi-view image including images of a plurality of viewpoints (views).
  • the present technology may be applied to encoding / decoding of each viewpoint (view).
  • the present technology is applied to a hierarchical image encoding (scalable encoding) / decoding system that encodes / decodes a hierarchical image that is multi-layered (hierarchized) so as to have a scalability function for a predetermined parameter. can do.
  • the present technology may be applied to encoding / decoding of each layer (layer).
  • the image encoding apparatus and the image decoding apparatus are, for example, a transmitter and a receiver (for example, a television set) in satellite broadcasting, cable broadcasting such as cable TV, distribution on the Internet, and distribution to terminals by cellular communication.
  • a transmitter and a receiver for example, a television set
  • the present technology is applicable to any configuration mounted on an arbitrary device or a device configuring the system, for example, a processor (eg, a video processor) as a system LSI (Large Scale Integration), a module using a plurality of processors (eg, a video processor). Module), a unit using a plurality of modules (eg, a video unit), a set obtained by adding other functions to the unit (eg, a video set), and the like (that is, a configuration of a part of the apparatus).
  • a processor eg, a video processor
  • LSI Large Scale Integration
  • Module a unit using a plurality of modules
  • a set obtained by adding other functions to the unit eg, a video set
  • the like that is, a configuration of a part of the apparatus.
  • the present technology can be applied to a network system including a plurality of devices.
  • the present invention can be applied to a cloud service that provides a service relating to an image (moving image) to an arbitrary terminal such as a computer, an AV (Audio Visual) device, a portable information processing terminal, and an IoT (Internet of Things) device. it can.
  • a cloud service that provides a service relating to an image (moving image) to an arbitrary terminal such as a computer, an AV (Audio Visual) device, a portable information processing terminal, and an IoT (Internet of Things) device. it can.
  • the system, device, processing unit, etc. to which the present technology is applied may be used in any fields such as traffic, medical care, crime prevention, agriculture, livestock industry, mining, beauty, factories, home appliances, weather, nature monitoring, etc. Can be. Further, its use is arbitrary.
  • the present technology can be applied to systems and devices provided for providing ornamental content and the like.
  • the present technology can be applied to systems and devices used for traffic, such as traffic condition management and automatic driving control.
  • the present technology can also be applied to systems and devices provided for security.
  • the present technology can be applied to a system or device provided for automatic control of a machine or the like.
  • the present technology can also be applied to systems and devices provided for use in agriculture and livestock industry.
  • the present technology can also be applied to a system or a device that monitors a natural state such as a volcano, a forest, and the ocean, a wildlife, and the like.
  • the present technology can also be applied to systems and devices provided for sports.
  • An orthogonal transformation unit that performs orthogonal transformation on a block obtained by dividing the image, A control unit that controls the orthogonal transformation unit according to whether the number of pixels in the height direction or the width direction of the block is a power of 2;
  • An image processing apparatus having: (2) When the number of pixels of the block is not a power of 2, the control unit controls the orthogonal transform unit so as not to execute the orthogonal transform.
  • the image processing device according to (1).
  • the image processing device according to (1) or (2).
  • the control unit performs inter-prediction that generates a predicted image based on an image different from the image to be processed or determines whether or not the number of pixels in the block is a power of 2 depending on whether or not the number of pixels of the block is a power of 2. Control whether to use intra prediction to generate a predicted image based on The image processing device according to any one of (1) to (3). (5) When the number of pixels of the block is not a power of 2, the control unit controls to execute the inter prediction.
  • the image processing device according to (4).
  • An output unit that outputs prediction mode information indicating which of the inter prediction and the intra prediction is to be executed, When the number of pixels of the block is not a power of 2, the control unit controls the output unit so as not to output the prediction mode information.
  • the image processing device (4).
  • the control unit when the prediction mode information is not provided, controls to execute the inter prediction,
  • the image processing device (6).
  • the control unit controls the orthogonal transform unit to execute the orthogonal transform when the size of the block in which the number of pixels in the height direction or the width direction is not a power of 2 is smaller than a threshold value.
  • the image processing device according to any one of (1) to (7).
  • the control unit is configured to divide the block in which the number of pixels in the height direction or the width direction is not a power of 2 so as to form a block in which the number of pixels in the height direction and the width direction is a power of 2,
  • the orthogonal transform unit performs an orthogonal transform on the block divided by the control unit,
  • the image processing device according to any one of (1) to (8).
  • the control unit may execute the orthogonal transformation in a direction in which the number of pixels is a power of 2. Controlling the orthogonal transformation unit, The image processing device according to any one of (1) to (9).
  • the control unit the height direction, the number of pixels in the width direction is not a power of 2, inside the block, the height direction, and the maximum region where the number of pixels in the width direction is a power of 2, Controlling the orthogonal transformation unit to perform orthogonal transformation, The image processing device according to (1).
  • the control unit among the plurality of the maximum regions, when the orthogonal transformation is performed, for the maximum region at a low cost position, the orthogonal transformation unit is controlled to perform the orthogonal transformation, The image processing device according to (11).
  • the control unit controls to output position information indicating the position of the maximum area where the orthogonal transformation has been performed, The image processing device according to (11) or (12).
  • the control unit controls the orthogonal transformation unit so that the orthogonal transformation is not performed in a region other than the maximum region in the block.
  • the image processing device according to any one of (11) to (13).
  • the control unit divides the maximum region from the block in which the number of pixels in the height direction or the width direction is not a power of 2 and causes the orthogonal transformation unit to perform orthogonal transformation on the maximum region.
  • the number of pixels in the direction or the width direction is controlled to be repeatedly executed until there is no block that is not a power of 2,
  • the image processing device according to any one of (11) to (14).

Landscapes

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

Abstract

画像処理装置(12)は、画像を分割して得られるブロックに対して直交変換を実行する直交変換部(113、114)と、前記ブロックの高さ方向、又は幅方向の画素数が2のべき乗であるか否かに応じて前記直交変換部を制御する制御部(101、212)と、を有する。

Description

画像処理装置、画像処理方法及び画像処理プログラム
 本開示は、画像処理装置、画像処理方法及び画像処理プログラムに関する。
 ITU-T(International Telecommunication Union Telecommunication Standardization Sector)の次世代ビデオ符号化を探索するJVET(Joint Video Exploration Team)では、処理の簡素化のため、CU(Coding Unit)とTU(Transform Unit)とを同一にすることが提案されている。すなわち、CU単位で直交変換及び逆直交変換を実行することが提案されている。
 従来、CUを分割したTU単位で直交変換及び逆直交変換が実行されていた。そして、TUは、高さ方向、又は幅方向の画素数が2のべき乗になるように分割されていた。そのため、高さ方向、又は幅方向の画素数が2のべき乗ではない単位で直交変換及び逆直交変換を実行することは無かった。
Teruhiko Suzuki, Masaru Ikeda, Karl Sharman, "Description of SDR and HDR video coding technology proposal by Sony(JVET-J0028)" JVET of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10-20 Apr. 2018
 ところで、符号化圧縮率を向上させるにはCUのブロック分割のバリエーションを増やす必要がある。CUのブロック分割のバリエーションには、分割後のブロックの幅方向又は高さ方向の画素数が2のべき乗でない場合も想定される。しかしながら、CUを分割したTU単位で直交変換及び逆直交変換を行う場合、直交変換及び逆直交変換の対象ブロックの画素数が2のべき乗にならないことは想定されていなかった。そのため、高さ方向、又は幅方向の画素数が2のべき乗ではブロックに対して直交変換又は逆直交変換を実行した場合に、処理量が大きくなってしまう。
 そこで、本開示では、ブロックの幅方向又は高さ方向の画素数が2のべき乗ではない場合においても処理量の増加を抑制することができる画像処理装置、画像処理方法及び画像処理プログラムを提案する。
 上記の課題を解決するために、本開示に係る一形態の画像処理装置は、画像を分割して得られるブロックに対して直交変換を実行する直交変換部と、前記ブロックの高さ方向、又は幅方向の画素数が2のべき乗であるか否かに応じて前記直交変換部を制御する制御部と、を有する。
 本開示によれば、ブロックの幅方向又は高さ方向の画素数が2のべき乗ではない場合においても処理量の増加を抑制することができる。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本開示の第1の実施形態に係る画像処理システムの一実施の形態の構成例を示すブロック図である。 本開示の第1の実施形態に係る符号化回路において行われる処理について説明する図である。 本開示の第1の実施形態に係る復号回路において行われる処理について説明する図である。 本開示の第1の実施形態に係る画像符号化装置の一実施の形態の構成例を示すブロック図である。 本開示の第1の実施形態に係る画像復号装置の一実施の形態の構成例を示すブロック図である。 本開示の第1の実施形態に係る画像符号化装置12が実行する画像符号化処理を説明するフローチャートである。 本開示の第1の実施形態に係る画像復号装置13が実行する画像復号処理を説明するフローチャートである。 本開示の第1の実施形態に係るCUのブロック分割の一例を示す図(1)である。 本開示の第1の実施形態に係るCUのブロック分割の一例を示す図(2)である。 本開示の第1の実施形態に係るCUのブロック分割のバリエーションを示す図である。 本開示の第1の実施形態に係るCUの分割前後の一例を示した図である。 本開示の第1の実施形態に係る符号化処理の一例を示すフローチャートである。 本開示の第1の実施形態に係る復号処理の一例を示すフローチャートである。 本開示の第1の実施形態の変形例(1)に係る符号化処理の一例を示すフローチャートである。 本開示の第1の実施形態の変形例(1)に係る復号処理の一例を示すフローチャートである。 本開示の第1の実施形態の変形例(2)に係る符号化処理の一例を示すフローチャートである。 本開示の第2の実施形態に係る符号化処理の一例を示すフローチャートである。 本開示の第2の実施形態に係るCUの分割態様の一例を示す図である。 本開示の第2の実施形態に係るCUの分割態様の一例を示す図である。 本開示の第2の実施形態に係るCUの分割態様の一例を示す図である。 本開示の第3の実施形態に係る高さ方向、及び幅方向の画素数が2のべき乗のCUに対する直交変換の処理手順を説明する図である。 本開示の第3の実施形態に係る高さ方向の画素数が2のべき乗ではないCUを示す図である。 本開示の第3の実施形態に係る幅方向の画素数が2のべき乗ではないCUを示す図である。 本開示の第4の実施形態に係る直交変換を実行する領域のバリエーションの一例を示す図である。 本開示の第4の実施形態に係る符号化処理の一例を示すフローチャートである。 本開示の第4の実施形態に係る復号処理の一例を示すフローチャートである。 本開示の第4の実施形態に係る直交変換を実行する領域のバリエーションの一例を示す図である。 本開示の第4の実施形態の変形例(1)に係る直交変換で残った領域に対して、画素数が2のべき乗になる最大領域に直交変換を再帰的に実行した場合の一例を示す図である。 本開示の第4の実施形態の変形例(1)に係る直交変換で残った領域に対して、画素数が2のべき乗になる最大領域に直交変換を再帰的に実行した場合の例を示す図である。 上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示すブロック図である。
 以下に、本開示の実施形態について図面に基づいて詳細に説明する。なお、以下の各実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する。
 <技術内容・技術用語をサポートする文献等>
 本技術で開示される範囲は、実施の形態に記載されている内容だけではなく、出願当時において公知となっている以下の非特許文献に記載されている内容も含まれる。
 非特許文献1:(上述)
 非特許文献2:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "High efficiency video coding", H.265, 12/2016
 非特許文献3:TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU(International Telecommunication Union), "Advanced video coding for generic audiovisual services", H.264, 04/2017
 つまり、上述の非特許文献1乃至3に記載されている内容もサポート要件を判断する際の根拠となる。例えば、非特許文献1に記載されているQTBT(Quad Tree Plus Binary Tree) Block StrucTUre、または、非特許文献2に記載されているQuad-Tree Block StrucTUreが、実施の形態において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。また、例えば、パース(Parsing)、シンタックス(Syntax)、セマンティクス(Semantics)等の技術用語についても同様に、実施の形態において直接的な記載がない場合でも、本技術の開示範囲内であり、請求の範囲のサポート要件を満たすものとする。
 <用語>
 本願では、以下の用語を、以下のように定義する。
    <ブロック>
 画像(ピクチャ)の部分領域や処理単位として説明に用いる「ブロック」(処理部を示すブロックではない)は、特に言及しない限り、ピクチャ内の任意の部分領域を示し、その大きさ、形状、および特性等は限定されない。例えば、「ブロック」には、TB(Transform Block)、TU(Transform Unit)、PB(Prediction Block)、PU(Prediction Unit)、SCU(Smallest Coding Unit)、CU(Coding Unit)、LCU(Largest Coding Unit)、CTB(Coding Tree Block)、CTU(Coding Tree Unit)、変換ブロック、サブブロック、マクロブロック、タイル、またはスライス等、任意の部分領域(処理単位)が含まれるものとする。
    <ブロックサイズの指定>
 また、このようなブロックのサイズを指定するに当たって、直接的にブロックサイズを指定するだけでなく、間接的にブロックサイズを指定するようにしてもよい。例えばサイズを識別する識別情報を用いてブロックサイズを指定するようにしてもよい。また、例えば、基準となるブロック(例えばLCUやSCU等)のサイズとの比または差分によってブロックサイズを指定するようにしてもよい。例えば、シンタックス要素等としてブロックサイズを指定する情報を伝送する場合に、その情報として、上述のような間接的にサイズを指定する情報を用いるようにしてもよい。このようにすることにより、その情報の情報量を低減させることができ、符号化効率を向上させることができる場合もある。また、このブロックサイズの指定には、ブロックサイズの範囲の指定(例えば、許容されるブロックサイズの範囲の指定等)も含む。
    <情報・処理の単位>
 各種情報が設定されるデータ単位や、各種処理が対象とするデータ単位は、それぞれ任意であり上述した例に限定されない。例えば、これらの情報や処理が、それぞれ、TU(Transform Unit)、TB(Transform Block)、PU(Prediction Unit)、PB(Prediction Block)、CU(Coding Unit)、LCU(Largest Coding Unit)、サブブロック、ブロック、タイル、スライス、ピクチャ、シーケンス、またはコンポーネント毎に設定されるようにしてもよいし、それらのデータ単位のデータを対象とするようにしてもよい。もちろん、このデータ単位は、情報や処理毎に設定され得るものであり、全ての情報や処理のデータ単位が統一されている必要はない。なお、これらの情報の格納場所は任意であり、上述したデータ単位のヘッダやパラメータセット等に格納されるようにしてもよい。また、複数個所に格納されるようにしてもよい。
    <制御情報>
 本技術に関する制御情報を符号化側から復号側に伝送するようにしてもよい。例えば、上述した本技術を適用することを許可(または禁止)するか否かを制御する制御情報(例えばenabled_flag)を伝送するようにしてもよい。また、例えば、上述した本技術を適用する対象(または適用しない対象)を示す制御情報を伝送するようにしてもよい。例えば、本技術を適用する(または、適用を許可若しくは禁止する)ブロックサイズ(上限若しくは下限、またはその両方)、フレーム、コンポーネント、またはレイヤ等を指定する制御情報を伝送するようにしてもよい。
    <フラグ>
 なお、本明細書において「フラグ」とは、複数の状態を識別するための情報であり、真(1)または偽(0)の2状態を識別する際に用いる情報だけでなく、3以上の状態を識別することが可能な情報も含まれる。したがって、この「フラグ」が取り得る値は、例えば1/0の2値であってもよいし、3値以上であってもよい。すなわち、この「フラグ」を構成するbit数は任意であり、1bitでも複数bitでもよい。また、識別情報(フラグも含む)は、その識別情報をビットストリームに含める形だけでなく、ある基準となる情報に対する識別情報の差分情報をビットストリームに含める形も想定されるため、本明細書においては、「フラグ」や「識別情報」は、その情報だけではなく、基準となる情報に対する差分情報も包含する。
    <メタデータを関連付ける>
 また、符号化データ(ビットストリーム)に関する各種情報(メタデータ等)は、符号化データに関連づけられていれば、どのような形態で伝送または記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(または同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、またはフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
 なお、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
 以下に、本開示の実施形態について図面に基づいて詳細に説明する。なお、以下の各実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する。
(第1の実施形態)
[第1の実施形態に係る画像処理システムの構成]
 図1乃至図5を参照して、本技術の概要について説明する。
 図1は、本開示の第1の実施形態に係る画像処理システムの一実施の形態の構成例を示すブロック図である。
 図1に示すように、画像処理システム11は、画像符号化装置12および画像復号装置13を備えて構成される。例えば、画像処理システム11では、図示しない撮像装置により撮像された画像が画像符号化装置12に入力され、画像符号化装置12において画像が符号化されることで符号化データが生成される。これにより、画像処理システム11では、画像符号化装置12から画像復号装置13へ、符号化データがビットストリームとして伝送される。そして、画像処理システム11では、画像復号装置13において符号化データが復号されることで画像が生成され、図示しない表示装置に表示される。
 画像符号化装置12は、画像処理チップ21および外部メモリ22がバスを介して接続された構成となっている。
 画像処理チップ21は、画像を符号化する符号化回路23、および、符号化回路23が画像を符号化する際に必要となるデータを一時的に記憶するキャッシュメモリ24により構成される。
 外部メモリ22は、例えば、DRAM(Dynamic Random Access Memory)により構成され、画像符号化装置12において符号化の対象となる画像のデータをフレームごとに記憶する。
 例えば、画像符号化装置12では、外部メモリ22に記憶されている1フレーム分の画像のデータのうちの、符号化を行う処理単位となるCUごとに分割されたデータがキャッシュメモリ24に読み込まれる。そして、画像符号化装置12では、キャッシュメモリ24に記憶されているCUごとに符号化回路23による符号化が行われ、符号化データが生成される。
 画像復号装置13は、画像処理チップ31および外部メモリ32がバスを介して接続された構成となっている。
 画像処理チップ31は、符号化データを復号して画像を生成する復号回路33、および、復号回路33が符号化データを復号する際に必要となるデータを一時的に記憶するキャッシュメモリ34により構成される。
 外部メモリ32は、例えば、DRAMにより構成され、画像復号装置13において復号の対象となる符号化データを画像のフレームごとに記憶する。
 そして、画像復号装置13では、キャッシュメモリ34に記憶されているCUごとに、復号回路33により符号化データが復号されることにより画像が生成される。
 ここで、図2は、本開示の第1の実施形態に係る符号化回路において行われる処理について説明する図である。図2を参照して、画像処理装置の一例である画像符号化装置12の符号化回路23が行う処理について、さらに説明する。
 例えば、符号化回路23は、図示するような直交変換部、及び制御部として機能するように設計される。なお、図2では、符号化回路23により直交変換部、及び制御部が実現される場合を想定して説明しているが、直交変換部、及び制御部は、ソフトウェア等の他の形態により実現されてもよい。例えば、符号化回路23はハードウェア要素として、CPUと、プログラムが記憶された記憶装置とを備え、直交変換部および制御部の機能は、CPUがプログラムを実行することにより実現してもよい。また、これに限らず、直交変換部および制御部の一部または全部は専用のハードウェア回路で実現されてもよい。さらに、直交変換部、及び制御部は、ハードウェアとソフトウェアとの混合により実現されてもよい。
 即ち、符号化回路23は、画像を分割して得られるブロックに対して直交変換を実行する。また、符号化回路23は、ブロックの高さ方向、又は幅方向の画素数が2のべき乗であるか否かに応じて直交変換部を制御する。
 さらに詳しくは、符号化回路23は、画像を分割して得られるCU、つまりブロック単位で直交変換を実行する。この場合において、符号化回路23は、分割後のCUの高さ方向、又は幅方向の画素数が2のべき乗になるか否かに関わらず分割する。そして、符号化回路23は、CUの高さ方向、及び幅方向の画素数が2のべき乗の場合には高速フーリエ変換により少ない演算量で高速に直交変換を実行することができる。しかし、符号化回路23は、CUの高さ方向、及び幅方向の画素数が2のべき乗ではない場合には、高速フーリエ変換を用いることができない。そのため、符号化回路23は、分割後のCUの高さ方向、又は幅方向の画素数が2のべき乗になるか否かに応じて直交変換を制御することで、処理量が増大し、処理速度が低下してしまうことを抑制する。
 そして、符号化回路23は、CUの分割形態等が示された分割情報等の各種情報を含めたビットストリームを出力する。
 ここで、図3は、本開示の第1の実施形態に係る復号回路において行われる処理について説明する図である。図3を参照して、画像処理装置の一例である画像復号装置13の復号回路33が行う処理について、さらに説明する。
 例えば、復号回路33は、図示するような直交変換部、及び制御部として機能するように設計される。なお、図3では、復号回路33により直交変換部、及び制御部が実現される場合を想定して説明しているが、直交変換部、及び制御部はソフトウェア等の他の形態により実現されてもよい。また、復号回路33においても上述した符号化回路23と同様に、直交変換部および制御部の機能は、CPUがプログラムを実行することにより実現してもよい。また、直交変換部および制御部の一部または全部を専用のハードウェア回路で実現してもよい。さらに、直交変換部、及び制御部は、ハードウェアとソフトウェアとの混合により実現されてもよい。
 即ち、復号回路33は、画像を分割して得られるブロックに対して直交変換を実行する。また、符号化回路23は、ブロックの高さ方向、又は幅方向の画素数が2のべき乗であるか否かに応じて直交変換部を制御する。
 ここで、逆直交変換は、広義には直交変換に含まれる概念であり、直交変換の一形態である。すなわち、復号回路33は、画像を分割して得られるブロックに対して直交変換の一形態である逆直交変換を実行する。また、符号化回路23は、ブロックの高さ方向、又は幅方向の画素数が2のべき乗であるか否かに応じて、直交変換の一形態である逆直交変換を実行する直交変換部を制御する。
 さらに詳しくは、復号回路33は、画像符号化装置12から出力されたビットストリームから、CUの分割形態等が示された分割情報を含む各種情報を抽出する。復号回路33は、画像を分割して得られるCU、つまりブロック単位で直交変換の一形態である逆直交変換を実行する。この場合において、符号化回路23は、CUの高さ方向、及び幅方向の画素数が2のべき乗であるか否かに応じて直交変換が実行され、直交変換に関する各種情報と共にビットストリームとして出力する。復号回路33は、ビットストリームに含まれる直交変換に関する各種情報により直交変換の一形態である逆直交変換を実行する直交変換部を制御する。すなわち、復号回路33は、ブロックの高さ方向、又は幅方向の画素数が2のべき乗であるか否かに応じて直交変換部を制御する。そのため、符号化回路23は、処理量が増大し、処理速度が低下してしまうことを抑制することができる。
[第1の実施形態に係る画像符号化装置の構成例]
 図4は、本開示の第1の実施形態に係る画像符号化装置の一実施の形態の構成例を示すブロック図である。
 図4に示される画像符号化装置12は、動画像の画像データを符号化する装置である。例えば、画像符号化装置12は、非特許文献1、非特許文献2、または非特許文献3に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データを符号化する。
 なお、図4においては、処理部やデータの流れ等の主なものを示しており、図4に示されるものが全てとは限らない。つまり、画像符号化装置12において、図4においてブロックとして示されていない処理部が存在したり、図4において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
 図4に示されるように画像符号化装置12は、制御部101、並べ替えバッファ111、演算部112、直交変換部113、量子化部114、符号化部115、蓄積バッファ116、逆量子化部117、逆直交変換部118、演算部119、インループフィルタ部120、フレームメモリ121、予測部122、およびレート制御部123を備えて構成される。なお、予測部122は、不図示のイントラ予測部およびインター予測部を備えている。画像符号化装置12は、動画像データを符号化することによって、符号化データ(ビットストリーム)を生成するための装置である。
    <制御部>
 制御部101は、外部、または予め指定された処理単位のブロックサイズに基づいて、並べ替えバッファ111により保持されている動画像データを処理単位のブロック(CU, PU, 変換ブロックなど)へ分割する。また、制御部101は、各ブロックへ供給する符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を、例えば、RDO(Rate-Distortion Optimization)に基づいて、決定する。
 これらの符号化パラメータの詳細については後述する。制御部101は、以上のような符号化パラメータを決定すると、それを各ブロックへ供給する。具体的には、以下の通りである。
 ヘッダ情報Hinfoは、各ブロックに供給される。
 予測モード情報Pinfoは、符号化部115と予測部122とに供給される。
 変換情報Tinfoは、符号化部115、直交変換部113、量子化部114、逆量子化部117、および逆直交変換部118に供給される。
 フィルタ情報Finfoは、インループフィルタ部120に供給される。
    <並べ替えバッファ>
 画像符号化装置12には、動画像データの各フィールド(入力画像)がその再生順(表示順)に入力される。並べ替えバッファ111は、各入力画像をその再生順(表示順)に取得し、保持(記憶)する。並べ替えバッファ111は、制御部101の制御に基づいて、その入力画像を符号化順(復号順)に並べ替えたり、処理単位のブロックに分割したりする。並べ替えバッファ111は、処理後の各入力画像を演算部112に供給する。また、並べ替えバッファ111は、その各入力画像(元画像)を、予測部122やインループフィルタ部120にも供給する。
    <演算部>
 演算部112は、処理単位のブロックに対応する画像I、および予測部122より供給される予測画像Pを入力とし、画像Iから予測画像Pを減算して、予測残差Dを導出(D=I-P)し、それを直交変換部113に供給する。
    <直交変換部>
 直交変換部113は、演算部112から供給される予測残差Dと、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、予測残差Dに対して直交変換を行い、変換係数Coeffを導出する。直交変換部113は、その得られた変換係数Coeffを量子化部114に供給する。
    <量子化部>
 量子化部114は、直交変換部113から供給される変換係数Coeffと、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeffをスケーリング(量子化)する。なお、この量子化のレートは、レート制御部123により制御される。量子化部114は、このような量子化により得られた量子化後の変換係数、すなわち量子化変換係数レベルlevelを、符号化部115および逆量子化部117に供給する。
    <符号化部>
 符号化部115は、量子化部114から供給された量子化変換係数レベルlevelと、制御部101から供給される各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)と、インループフィルタ部120から供給されるフィルタ係数等のフィルタに関する情報と、予測部122から供給される最適な予測モードに関する情報とを入力とする。符号化部115は、量子化変換係数レベルlevelを可変長符号化(例えば、算術符号化)し、ビット列(符号化データ)を生成する。
 また、符号化部115は、その量子化変換係数レベルlevelから残差情報Rinfoを導出し、残差情報Rinfoを符号化し、ビット列を生成する。
 さらに、符号化部115は、インループフィルタ部120から供給されるフィルタに関する情報をフィルタ情報Finfoに含め、予測部122から供給される最適な予測モードに関する情報を予測モード情報Pinfoに含める。そして、符号化部115は、上述した各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなど)を符号化し、ビット列を生成する。
 また、符号化部115は、以上のように生成された各種情報のビット列を多重化し、符号化データを生成する。符号化部115は、その符号化データを蓄積バッファ116に供給する。
 それらに加え、符号化部115は、制御部101から供給される直交変換最大サイズ識別情報を符号化し、ビット列を生成して、そのビット列を多重化し、符号化データを生成することができる。これにより、図1を参照して上述したように、直交変換最大サイズ識別情報を含む符号化データ(ビットストリーム)が伝送される。
    <蓄積バッファ>
 蓄積バッファ116は、符号化部115において得られた符号化データを、一時的に保持する。蓄積バッファ116は、所定のタイミングにおいて、保持している符号化データを、例えばビットストリーム等として画像符号化装置12の外部に出力する。例えば、この符号化データは、任意の記録媒体、任意の伝送媒体、任意の情報処理装置等を介して復号側に伝送される。すなわち、蓄積バッファ116は、符号化データ(ビットストリーム)を伝送する伝送部でもある。
    <逆量子化部>
 逆量子化部117は、逆量子化に関する処理を行う。例えば、逆量子化部117は、量子化部114から供給される量子化変換係数レベルlevelと、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)する。なお、この逆量子化は、量子化部114において行われる量子化の逆処理である。逆量子化部117は、このような逆量子化により得られた変換係数Coeff_IQを、逆直交変換部118に供給する。
    <逆直交変換部>
 逆直交変換部118は、逆直交変換に関する処理を行う。ここで、逆直交変換は、直交変換の一態様である。例えば、逆直交変換部118は、逆量子化部117から供給される変換係数Coeff_IQと、制御部101から供給される変換情報Tinfoとを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換を行い、予測残差D'を導出する。なお、この逆直交変換は、直交変換部113において行われる直交変換の逆処理である。逆直交変換部118は、このような逆直交変換により得られた予測残差D'を演算部119に供給する。なお、逆直交変換部118は、復号側の逆直交変換部(後述する)と同様であるので、逆直交変換部118については、復号側について行う説明(後述する)を適用することができる。
    <演算部>
 演算部119は、逆直交変換部118から供給される予測残差D’と、予測部122から供給される予測画像Pとを入力とする。演算部119は、その予測残差D’と、その予測残差D’に対応する予測画像Pとを加算し、局所復号画像Rlocalを導出(Rlocal=D’+P)する。演算部119は、導出した局所復号画像Rlocalをインループフィルタ部120およびフレームメモリ121に供給する。
    <インループフィルタ部>
 インループフィルタ部120は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部120は、演算部119から供給される局所復号画像Rlocalと、制御部101から供給されるフィルタ情報Finfoと、並べ替えバッファ111から供給される入力画像(元画像)とを入力する。なお、インループフィルタ部120に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。例えば、必要に応じて、予測モード、動き情報、符号量目標値、量子化パラメータQP、ピクチャタイプ、ブロック(CU、CTU等)の情報等がインループフィルタ部120に入力されるようにしてもよい。
 インループフィルタ部120は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。インループフィルタ部120は、必要に応じて入力画像(元画像)や、その他の入力情報もそのフィルタ処理に用いる。
 例えば、インループフィルタ部120は、非特許文献1に記載のように、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
 もちろん、インループフィルタ部120が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部120がウィーナーフィルタ等を適用するようにしてもよい。
 インループフィルタ部120は、フィルタ処理された局所復号画像Rlocalをフレームメモリ121に供給する。なお、例えばフィルタ係数等のフィルタに関する情報を復号側に伝送する場合、インループフィルタ部120は、そのフィルタに関する情報を符号化部115に供給する。
    <フレームメモリ>
 フレームメモリ121は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ121は、演算部119から供給される局所復号画像Rlocalや、インループフィルタ部120から供給されるフィルタ処理された局所復号画像Rlocalを入力とし、それを保持(記憶)する。また、フレームメモリ121は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(フレームメモリ121内のバッファへ格納する)。フレームメモリ121は、予測部122の要求に応じて、その復号画像R(またはその一部)を予測部122に供給する。
    <予測部>
 予測部122は、予測画像Pの生成に関する処理を行う。例えば、予測部122は、制御部101から供給される予測モード情報Pinfoと、並べ替えバッファ111から供給される入力画像(元画像)と、フレームメモリ121から読み出す復号画像R(またはその一部)を入力とする。予測部122は、予測モード情報Pinfoや入力画像(元画像)を用い、インター予測やイントラ予測等の予測処理を行い、復号画像Rを参照画像として参照して予測を行い、その予測結果に基づいて動き補償処理を行い、予測画像Pを生成する。予測部122は、生成した予測画像Pを演算部112および演算部119に供給する。また、予測部122は、以上の処理により選択した予測モード、すなわち最適な予測モードに関する情報を、必要に応じて符号化部115に供給する。
    <レート制御部>
 レート制御部123は、レート制御に関する処理を行う。例えば、レート制御部123は、蓄積バッファ116に蓄積された符号化データの符号量に基づいて、オーバフローあるいはアンダーフローが発生しないように、量子化部114の量子化動作のレートを制御する。
 なお、図2を参照して上述したような符号化回路23において設定部、および直交変換部として行われる各処理は、図4に示す各ブロックにおいて個々に行われるのではなく、例えば、複数のブロックにより行われるようにしてもよい。
[第1の実施形態に係る画像復号装置の構成例]
 図5は、本開示の第1の実施形態に係る画像復号装置の一実施の形態の構成例を示すブロック図である。図5に示される画像復号装置13は、AVCやHEVCのように、画像とその予測画像との予測残差が符号化された符号化データを復号する装置である。例えば、画像復号装置13は、非特許文献1、非特許文献2、または非特許文献3に記載されている技術を実装し、それらの文献のいずれかに記載された規格に準拠した方法で動画像の画像データが符号化された符号化データを復号する。例えば、画像復号装置13は、上述の画像符号化装置12により生成された符号化データ(ビットストリーム)を復号する。
 なお、図5においては、処理部やデータの流れ等の主なものを示しており、図5に示されるものが全てとは限らない。つまり、画像復号装置13において、図5においてブロックとして示されていない処理部が存在したり、図5において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
 図5において、画像復号装置13は、蓄積バッファ211、復号部212、逆量子化部213、逆直交変換部214、演算部215、インループフィルタ部216、並べ替えバッファ217、フレームメモリ218、および予測部219を備えて構成される。なお、予測部219は、不図示のイントラ予測部およびインター予測部を備えている。画像復号装置13は、符号化データ(ビットストリーム)を復号することによって、動画像データを生成するための装置である。
    <蓄積バッファ>
 蓄積バッファ211は、画像復号装置13に入力されたビットストリームを取得し、保持(記憶)する。蓄積バッファ211は、所定のタイミングにおいて、または、所定の条件が整う等した場合、蓄積しているビットストリームを復号部212に供給する。
    <復号部>
 復号部212は、画像の復号に関する処理を行う。例えば、復号部212は、蓄積バッファ211から供給されるビットストリームを入力とし、シンタックステーブルの定義に沿って、そのビット列から、各シンタックス要素のシンタックス値を可変長復号し、パラメータを導出する。
 シンタックス要素およびシンタックス要素のシンタックス値から導出されるパラメータには、例えば、ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、残差情報Rinfo、フィルタ情報Finfoなどの情報が含まれる。つまり、復号部212は、ビットストリームから、これらの情報をパースする(解析して取得する)。これらの情報について以下に説明する。
     <ヘッダ情報Hinfo>
 ヘッダ情報Hinfoは、例えば、VPS(Video Parameter Set)/SPS(Sequence Parameter Set)/PPS(PicTUre Parameter Set)/SH(スライスヘッダ)などのヘッダ情報を含む。ヘッダ情報Hinfoには、例えば、画像サイズ(横幅PicWidth、縦幅PicHeight)、ビット深度(輝度bitDepthY, 色差bitDepthC)、色差アレイタイプChromaArrayType、CUサイズの最大値MaxCUSize/最小値MinCUSize、4分木分割(Quad-tree分割ともいう)の最大深度MaxQTDepth/最小深度MinQTDepth、2分木分割(Binary-tree分割)の最大深度MaxBTDepth/最小深度MinBTDepth、変換スキップブロックの最大値MaxTSSize(最大変換スキップブロックサイズともいう)、各符号化ツールのオンオフフラグ(有効フラグともいう)などを規定する情報が含まれる。
 例えば、ヘッダ情報Hinfoに含まれる符号化ツールのオンオフフラグとしては、以下に示す変換、量子化処理に関わるオンオフフラグがある。なお、符号化ツールのオンオフフラグは、該符号化ツールに関わるシンタックスが符号化データ中に存在するか否かを示すフラグとも解釈することができる。また、オンオフフラグの値が1(真)の場合、該符号化ツールが使用可能であることを示し、オンオフフラグの値が0(偽)の場合、該符号化ツールが使用不可であることを示す。なお、フラグ値の解釈は逆であってもよい。
 コンポーネント間予測有効フラグ(ccp_enabled_flag):コンポーネント間予測(CCP(Cross-Component Prediction),CC予測とも称する)が使用可能であるか否かを示すフラグ情報である。例えば、このフラグ情報が「1」(真)の場合、使用可能であることが示され、「0」(偽)の場合、使用不可であることが示される。
 なお、このCCPは、コンポーネント間線形予測(CCLMまたはCCLMP)とも称する。
     <予測モード情報Pinfo>
 予測モード情報Pinfoには、例えば、処理対象PB(予測ブロック)のサイズ情報PBSize(予測ブロックサイズ)、イントラ予測モード情報IPinfo、動き予測情報MVinfo等の情報が含まれる。
 イントラ予測モード情報IPinfoには、例えば、JCTVC-W1005, 7.3.8.5 Coding Unit syntax中のprev_intra_luma_pred_flag, mpm_idx, rem_intra_pred_mode、およびそのシンタックスから導出される輝度イントラ予測モードIntraPredModeY等が含まれる。
 また、イントラ予測モード情報IPinfoには、例えば、コンポーネント間予測フラグ(ccp_flag(cclmp_flag))、多クラス線形予測モードフラグ(mclm_flag)、色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)、色差MPM識別子(chroma_mpm_idx)、および、これらのシンタックスから導出される輝度イントラ予測モード(IntraPredModeC)等が含まれる。
 コンポーネント間予測フラグ(ccp_flag(cclmp_flag))は、コンポーネント間線形予測を適用するか否かを示すフラグ情報である。例えば、ccp_flag==1のとき、コンポーネント間予測を適用することを示し、ccp_flag==0のとき、コンポーネント間予測を適用しないことを示す。
 多クラス線形予測モードフラグ(mclm_flag)は、線形予測のモードに関する情報(線形予測モード情報)である。より具体的には、多クラス線形予測モードフラグ(mclm_flag)は、多クラス線形予測モードにするか否かを示すフラグ情報である。例えば、「0」の場合、1クラスモード(単一クラスモード)(例えばCCLMP)であることを示し、「1」の場合、2クラスモード(多クラスモード)(例えばMCLMP)であることを示す。
 色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置のタイプ(色差サンプル位置タイプとも称する)を識別する識別子である。例えば色フォーマットに関する情報である色差アレイタイプ(ChromaArrayType)が420形式を示す場合、色差サンプル位置タイプ識別子は、次に示すような割り当て方となる。
  chroma_sample_loc_type_idx == 0 : Type2
  chroma_sample_loc_type_idx == 1 : Type3
  chroma_sample_loc_type_idx == 2 : Type0
  chroma_sample_loc_type_idx == 3 : Type1
 なお、この色差サンプル位置タイプ識別子(chroma_sample_loc_type_idx)は、色差コンポーネントの画素位置に関する情報(chroma_sample_loc_info())として(に格納されて)伝送される。
 色差MPM識別子(chroma_mpm_idx)は、色差イントラ予測モード候補リスト(intraPredModeCandListC)の中のどの予測モード候補を色差イントラ予測モードとして指定するかを表す識別子である。
 動き予測情報MVinfoには、例えば、merge_idx, merge_flag, inter_pred_idc, ref_idx_LX, mvp_lX_flag, X=(0,1), mvd等の情報が含まれる(例えば、JCTVC-W1005, 7.3.8.6 Prediction Unit Syntaxを参照)。
 もちろん、予測モード情報Pinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
     <変換情報Tinfo>
 変換情報Tinfoには、例えば、以下の情報が含まれる。もちろん、変換情報Tinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
 処理対象変換ブロックの横幅サイズTBWSizeおよび縦幅TBHSize(または、2を底とする各TBWSize、TBHSizeの対数値log2TBWSize、log2TBHSizeであってもよい)。
  変換スキップフラグ(ts_flag):(逆)プライマリ変換および(逆)セカンダリ変換をスキップか否かを示すフラグである。
  スキャン識別子(scanIdx)
  量子化パラメータ(qp)
  量子化マトリックス(scaling_matrix(例えば、JCTVC-W1005, 7.3.4 Scaling list data syntax))
     <残差情報Rinfo>
 残差情報Rinfo(例えば、JCTVC-W1005の7.3.8.11 Residual Coding syntaxを参照)には、例えば以下のシンタックスが含まれる。
  cbf(coded_block_flag):残差データ有無フラグ
  last_sig_coeff_x_pos:ラスト非ゼロ係数X座標
  last_sig_coeff_y_pos:ラスト非ゼロ係数Y座標
  coded_sub_block_flag:サブブロック非ゼロ係数有無フラグ
  sig_coeff_flag:非ゼロ係数有無フラグ
  gr1_flag:非ゼロ係数のレベルが1より大きいかを示すフラグ(GR1フラグとも呼ぶ)
  gr2_flag:非ゼロ係数のレベルが2より大きいかを示すフラグ(GR2フラグとも呼ぶ)
  sign_flag:非ゼロ係数の正負を示す符号(サイン符号とも呼ぶ)
  coeff_abs_level_remaining:非ゼロ係数の残余レベル(非ゼロ係数残余レベルとも呼ぶ)など。
 もちろん、残差情報Rinfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
     <フィルタ情報Finfo>
 フィルタ情報Finfoには、例えば、以下に示す各フィルタ処理に関する制御情報が含まれる。
  デブロッキングフィルタ(DBF)に関する制御情報
  画素適応オフセット(SAO)に関する制御情報
  適応ループフィルタ(ALF)に関する制御情報
  その他の線形・非線形フィルタに関する制御情報
 より具体的には、例えば、各フィルタを適用するピクチャや、ピクチャ内の領域を指定する情報や、CU単位のフィルタOn/Off制御情報、スライス、タイルの境界に関するフィルタOn/Off制御情報などが含まれる。もちろん、フィルタ情報Finfoに含まれる情報は任意であり、これらの情報以外の情報が含まれるようにしてもよい。
 復号部212の説明に戻り、復号部212は、残差情報Rinfoを参照して、各変換ブロック内の各係数位置の量子化変換係数レベルlevelを導出する。復号部212は、その量子化変換係数レベルlevelを、逆量子化部213に供給する。
 また、復号部212は、パースしたヘッダ情報Hinfo、予測モード情報Pinfo、量子化変換係数レベルlevel、変換情報Tinfo、フィルタ情報Finfoを各ブロックへ供給する。具体的には以下の通りである。
  ヘッダ情報Hinfoは、逆量子化部213、逆直交変換部214、予測部219、インループフィルタ部216に供給される。
  予測モード情報Pinfoは、逆量子化部213および予測部219に供給される。
  変換情報Tinfoは、逆量子化部213および逆直交変換部214に供給される。
  フィルタ情報Finfoは、インループフィルタ部216に供給される。
 もちろん、上述の例は一例であり、この例に限定されない。例えば、各符号化パラメータが任意の処理部に供給されるようにしてもよい。また、その他の情報が、任意の処理部に供給されるようにしてもよい。
    <逆量子化部>
 逆量子化部213は、逆量子化に関する処理を行う。例えば、逆量子化部213は、復号部212から供給される変換情報Tinfoおよび量子化変換係数レベルlevelを入力とし、その変換情報Tinfoに基づいて、量子化変換係数レベルlevelの値をスケーリング(逆量子化)し、逆量子化後の変換係数Coeff_IQを導出する。
 なお、この逆量子化は、量子化部114による量子化の逆処理として行われる。また、この逆量子化は、逆量子化部117による逆量子化と同様の処理である。つまり、逆量子化部117は、逆量子化部213と同様の処理(逆量子化)を行う。
 逆量子化部213は、導出した変換係数Coeff_IQを逆直交変換部214に供給する。
    <逆直交変換部>
 逆直交変換部214は、逆直交変換に関する処理を行う。例えば、逆直交変換部214は、逆量子化部213から供給される変換係数Coeff_IQ、および、復号部212から供給される変換情報Tinfoを入力とし、その変換情報Tinfoに基づいて、変換係数Coeff_IQに対して逆直交変換処理を行い、予測残差D'を導出する。
 なお、この逆直交変換は、直交変換部113による直交変換の逆処理として行われる。また、この逆直交変換は、逆直交変換部118による逆直交変換と同様の処理である。つまり、逆直交変換部118は、逆直交変換部214と同様の処理(逆直交変換)を行う。
 逆直交変換部214は、導出した予測残差D'を演算部215に供給する。
    <演算部>
 演算部215は、画像に関する情報の加算に関する処理を行う。例えば、演算部215は、逆直交変換部214から供給される予測残差D'と、予測部219から供給される予測画像Pとを入力とする。演算部215は、予測残差D'とその予測残差D'に対応する予測画像P(予測信号)とを加算し、局所復号画像Rlocalを導出(Rlocal=D'+P)する。
 演算部215は、導出した局所復号画像Rlocalを、インループフィルタ部216およびフレームメモリ218に供給する。
    <インループフィルタ部>
 インループフィルタ部216は、インループフィルタ処理に関する処理を行う。例えば、インループフィルタ部216は、演算部215から供給される局所復号画像Rlocalと、復号部212から供給されるフィルタ情報Finfoとを入力とする。なお、インループフィルタ部216に入力される情報は任意であり、これらの情報以外の情報が入力されてもよい。
 インループフィルタ部216は、そのフィルタ情報Finfoに基づいて、局所復号画像Rlocalに対して適宜フィルタ処理を行う。
 例えば、インループフィルタ部216は、非特許文献1に記載のように、バイラテラルフィルタ、デブロッキングフィルタ(DBF(DeBlocking Filter))、適応オフセットフィルタ(SAO(Sample Adaptive Offset))、および適応ループフィルタ(ALF(Adaptive Loop Filter))の4つのインループフィルタをこの順に適用する。なお、どのフィルタを適用するか、どの順で適用するかは任意であり、適宜選択可能である。
 インループフィルタ部216は、符号化側(例えば、図4の画像符号化装置12のインループフィルタ部120)により行われたフィルタ処理に対応するフィルタ処理を行う。
 もちろん、インループフィルタ部216が行うフィルタ処理は任意であり、上述の例に限定されない。例えば、インループフィルタ部216がウィーナーフィルタ等を適用するようにしてもよい。
 インループフィルタ部216は、フィルタ処理された局所復号画像Rlocalを並べ替えバッファ217およびフレームメモリ218に供給する。
    <並べ替えバッファ>
 並べ替えバッファ217は、インループフィルタ部216から供給された局所復号画像Rlocalを入力とし、それを保持(記憶)する。並べ替えバッファ217は、その局所復号画像Rlocalを用いてピクチャ単位毎の復号画像Rを再構築し、保持する(バッファ内に格納する)。並べ替えバッファ217は、得られた復号画像Rを、復号順から再生順に並べ替える。並べ替えバッファ217は、並べ替えた復号画像R群を動画像データとして画像復号装置13の外部に出力する。
    <フレームメモリ>
 フレームメモリ218は、画像に関するデータの記憶に関する処理を行う。例えば、フレームメモリ218は、演算部215より供給される局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ218内のバッファへ格納する。
 また、フレームメモリ218は、インループフィルタ部216から供給される、インループフィルタ処理された局所復号画像Rlocalを入力とし、ピクチャ単位毎の復号画像Rを再構築して、フレームメモリ218内のバッファへ格納する。フレームメモリ218は、適宜、その記憶している復号画像R(またはその一部)を参照画像として予測部219に供給する。
 なお、フレームメモリ218が、復号画像の生成に係るヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo、フィルタ情報Finfoなどを記憶するようにしても良い。
    <予測部>
 予測部219は、予測画像Pの生成に関する処理を行う。例えば、予測部219は、復号部212から供給される予測モード情報Pinfoを入力とし、その予測モード情報Pinfoによって指定される予測方法により予測を行い、予測画像Pを導出する。その導出の際、予測部219は、その予測モード情報Pinfoによって指定される、フレームメモリ218に格納されたフィルタ前またはフィルタ後の復号画像R(またはその一部)を、参照画像として利用する。予測部219は、導出した予測画像Pを、演算部215に供給する。
 なお、図3を参照して上述したような復号回路33において直交変換部、および制御部として行われる各処理は、図5に示す各ブロックにおいて個々に行われるのではなく、例えば、複数のブロックにより行われるようにしてもよい。
 [画像符号化処理および画像復号処理]
 図6及び図7のフローチャートを参照して、画像符号化装置12が実行する画像符号化処理、および、画像復号装置13が実行する画像復号処理について説明する。
 図6は、本開示の第1の実施形態に係る画像符号化装置12が実行する画像符号化処理を説明するフローチャートである。
 画像符号化処理が開始されると、並べ替えバッファ111は、制御部101に制御されて、入力された動画像データのフレームの順を表示順から符号化順に並べ替える(ステップS11)。
 制御部101は、並べ替えバッファ111が保持する入力画像に対して、処理単位を設定する(ブロック分割を行う)(ステップS12)。
 制御部101は、並べ替えバッファ111が保持する入力画像についての符号化パラメータを決定(設定)する(ステップS13)。
 予測部122は、予測処理を行い、最適な予測モードの予測画像P等を生成する(ステップS14)。例えば、この予測処理において、予測部122は、イントラ予測を行って最適なイントラ予測モードの予測画像P等を生成し、インター予測を行って最適なインター予測モードの予測画像P等を生成し、それらの中から、コスト関数値等に基づいて最適な予測モードを選択する。
 演算部112は、入力画像と、ステップS14の予測処理により選択された最適なモードの予測画像Pとの差分を演算する(ステップS15)。つまり、演算部112は、入力画像と予測画像Pとの予測残差Dを生成する。このようにして求められた予測残差Dは、元の画像データに比べてデータ量が低減される。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。
 直交変換部113は、ステップS15の処理により生成された予測残差Dに対して直交変換処理を行い、変換係数Coeffを導出する(ステップS16)。
 量子化部114は、制御部101により算出された量子化パラメータを用いる等して、ステップS16の処理により得られた変換係数Coeffを量子化し、量子化変換係数レベルlevelを導出する(ステップS17)。
 逆量子化部117は、ステップS17の処理により生成された量子化変換係数レベルlevelを、そのステップS17の量子化の特性に対応する特性で逆量子化し、変換係数Coeff_IQを導出する(ステップS18)。
 逆直交変換部118は、ステップS18の処理により得られた変換係数Coeff_IQを、ステップS16の直交変換処理に対応する方法で逆直交変換し、予測残差D'を導出する(ステップS19)。なお、この逆直交変換処理は、復号側において行われる逆直交変換処理(後述する)と同様であるので、このステップS19の逆直交変換処理については、復号側について行う説明(後述する)を適用することができる。
 演算部119は、ステップS19の処理により導出された予測残差D'に、ステップS14の予測処理により得られた予測画像Pを加算することにより、局所的に復号された復号画像を生成する(ステップS20)。
 インループフィルタ部120は、ステップS20の処理により導出された、局所的に復号された復号画像に対して、インループフィルタ処理を行う(ステップS21)。
 フレームメモリ121は、ステップS20の処理により導出された、局所的に復号された復号画像や、ステップS21においてフィルタ処理された、局所的に復号された復号画像を記憶する(ステップS22)。
 符号化部115は、ステップS17の処理により得られた量子化変換係数レベルlevelを符号化する(ステップS23)。例えば、符号化部115は、画像に関する情報である量子化変換係数レベルlevelを、算術符号化等により符号化し、符号化データを生成する。また、このとき、符号化部115は、各種符号化パラメータ(ヘッダ情報Hinfo、予測モード情報Pinfo、変換情報Tinfo)を符号化する。さらに、符号化部115は、量子化変換係数レベルlevelから残差情報RInfoを導出し、その残差情報RInfoを符号化する。
 蓄積バッファ116は、このようにして得られた符号化データを蓄積し、例えばビットストリームとして、それを画像符号化装置12の外部に出力する(ステップS24)。このビットストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。また、レート制御部123は、必要に応じてレート制御を行う。
 ステップS24の処理が終了すると、画像符号化処理が終了する。
 図7は、本開示の第1の実施形態に係る画像復号装置13が実行する画像復号処理を説明するフローチャートである。
 画像復号処理が開始されると、蓄積バッファ211は、画像復号装置13の外部から供給される符号化データ(ビットストリーム)を取得して保持する(蓄積する)(ステップS31)。
 復号部212は、その符号化データ(ビットストリーム)を復号し、量子化変換係数レベルlevelを得る(ステップS32)。また、復号部212は、この復号により、符号化データ(ビットストリーム)から各種符号化パラメータをパースする(解析して取得する)。
 逆量子化部213は、ステップS32の処理により得られた量子化変換係数レベルlevelに対して、符号化側で行われた量子化の逆処理である逆量子化を行い、変換係数Coeff_IQを得る(ステップS33)。
 逆直交変換部214は、ステップS33の処理により得られた変換係数Coeff_IQに対して、符号化側で行われた直交変換処理の逆処理である逆直交変換処理を行い、予測残差D'を得る(ステップS34)。
 予測部219は、ステップS32においてパースされた情報に基づいて、符号化側より指定される予測方法で予測処理を実行し、フレームメモリ218に記憶されている参照画像を参照する等して、予測画像Pを生成する(ステップS35)。
 演算部215は、ステップS34の処理により得られた予測残差D'と、ステップS35の処理により得られた予測画像Pとを加算し、局所復号画像Rlocalを導出する(ステップS36)。
 インループフィルタ部216は、ステップS36の処理により得られた局所復号画像Rlocalに対して、インループフィルタ処理を行う(ステップS37)。
 並べ替えバッファ217は、ステップS37の処理により得られたフィルタ処理された局所復号画像Rlocalを用いて復号画像Rを導出し、その復号画像R群の順序を復号順から再生順に並べ替える(ステップS38)。再生順に並べ替えられた復号画像R群は、動画像として画像復号装置13の外部に出力される。
 また、フレームメモリ218は、ステップS36の処理により得られた局所復号画像Rlocal、および、ステップS37の処理により得られたフィルタ処理後の局所復号画像Rlocalの内、少なくとも一方を記憶する(ステップS39)。
 ステップS39の処理が終了すると、画像復号処理が終了する。
[第1の実施形態に係るCUブロック分割の概要]
 図8は、本開示の第1の実施形態に係るCUのブロック分割の一例を示す図(1)である。図9は、本開示の第1の実施形態に係るCUのブロック分割の一例を示す図(2)である。制御部101は、図8に示すように、CUを分割する。さらに、制御部101は、図9に示すように、分割したCUを更に分割することができる。このように、図8及び図9に示すように、分割した場合においても、CUの高さ方向及び幅方向の画素数は、2のべき乗となる。
 ところで、動き補償においては、動きの境界で分割することが好ましいため、自由度の高いブロック分割が望まれている。図10は、本開示の第1の実施形態に係るCUのブロック分割のバリエーションを示す図である。図10に示すように、CUのブロック分割のバリエーションを増加させた場合、CUの高さ方向又は幅方向の画素数が、2のべき乗とはならないことがある。
 ここで、CUは、TUと同一サイズとすることが提案されている。すなわち、CU単位で直交変換、又は逆直交変換を実行する仕様とすることが提案されている。そして、図10に示すようなブロック分割を実行した場合に、幅方向又は高さ方向の画素数が2のべき乗とはならないCUが存在する。このため、幅方向又は高さ方向の画素数が2のべき乗とはならないCU、つまり幅方向又は高さ方向の画素数が2のべき乗とはならないブロックに対して直交変換及び逆直交変換を実行しなければならないことがある。幅方向又は高さ方向の画素数が2のべき乗の場合、高速フーリエ変換により演算量が少なくなるため少ない処理量で高速に処理を実行することができる。しかしながら、2のべき乗ではないCUに対して、直交変換、又は逆直交変換を実行した場合に、高速フーリエ変換を用いることができないため、処理量が増大し、処理速度を向上させることが困難になる。そこで、CUの画素数が2のべき乗ではない場合に、以下方法により量子化、逆量子化、直交変換、及び逆直交変換を実行させる。
[第1の実施形態に係る画像符号化装置12の符号化処理]
 ここで、図11は、本開示の第1の実施形態に係るCUの分割前後の一例を示した図である。図11(a)は、分割前のCUの一例を示した図である。図11(b)は、分割したCUの一例を示した図である。図11(b)は、境界で分割したことにより右側の領域の幅方向の画素数が2のべき乗ではなくなっている。そのため、図11(b)に示す右側領域に対して直交変換を実行した場合、処理量が増大し、処理速度を向上させることが困難になる。そこで、図11(b)に示す右側領域には、直交変換はスキップして、量子化を実行する。
 ここで、図12は、本開示の第1の実施形態に係る符号化処理の一例を示すフローチャートである。制御部101は、動きの境界に合わせて、CUを分割する(ステップS41)。制御部101は、分割後における処理対象のCUの高さ方向、及び幅方向の画素数が2のべき乗であるか否かを判定する(ステップS42)。
 直交変換部113は、CUの高さ方向、及び幅方向の画素数が2のべき乗である場合に(ステップS42;Yes)、予測残差Dに対して直交変換を実行する(ステップS43)。
 また、制御部101は、予測残差Dが含まれているか否かを示す残差データ有無フラグ(cbf)に1を設定する(ステップS44)。すなわち、制御部101は、予測残差Dが含まれていることを残差データ有無フラグ(cbf)に設定する。
 そして、蓄積バッファ116は、予測残差Dと、残差データ有無フラグ(cbf)とを含むビットストリームを出力する(ステップS45)。
 ステップS42において、CUの高さ方向、又は幅方向の何れか一方の画素数が2のべき乗ではない場合に(ステップS42;No)、制御部101は、Transform skip、又はPCM(Pulse Code Modulation)モード等の処理により予測残差Dに対する直交変換をスキップして、直交変換を実行しない(ステップS46)。
 また、直交変換部113は、予測残差Dが含まれていないことを示す0を残差データ有無フラグ(cbf)に設定する(ステップS47)。
 そして、蓄積バッファ116は、直交変換が実行されていない予測画像Pと、直交変換された予測残差Dが含まれていないことを示す残差データ有無フラグ(cbf)とを含むビットストリームを出力する(ステップS48)。
 このように、画像符号化装置12は、CUの高さ方向、又は幅方向の何れか一方の画素数が2のべき乗ではない場合に、直交変換を実行しないことで処理量が増大してしまうことを抑制することができる。
[第1の実施形態に係る画像復号装置13の復号処理]
 次に、画像符号化装置12から出力されたビットストリームを復号するデコーダにおける処理について説明する。
 ここで、図13は、本開示の第1の実施形態に係る復号処理の一例を示すフローチャートである。復号部212は、画像符号化装置12が出力したビットストリームに含まれている残差データ有無フラグ(cbf)に基づいて、ビットストリームに予測残差Dが含まれているか否かを判定する(ステップS51)。
 ビットストリームに予測残差Dが含まれている場合に(ステップS51;Yes)、復号部212は、ビットストリームに含まれている予測残差Dに対して逆直交変換部214に逆直交変換を実行させる(ステップS52)。
 一方、ビットストリームに予測残差Dが含まれていない場合に(ステップS51;No)、復号部212は、ビットストリームに含まれている予測画像Pに対して逆直交変換部214に逆直交変換を実行させない(ステップS53)。
 このように、画像符号化装置12は、CUの高さ方向、又は幅方向の何れか一方の画素数が2のべき乗ではない場合に、直交変換を実行しないことで処理量が増大してしまうことを抑制することができる。
[第1の実施形態の変形例(1)]
 上記の第1の実施形態では、分割後における処理対象のCUの高さ方向、及び幅方向の画素数が2のべき乗であるか否かにより直交変換及び逆直交変換の実行を制御した。変形例1においては、さらに予測モードを制御する。
 予測モードには、処理対象のフレーム画像とは異なる画像に基づいて予測画像を生成するインター予測と、処理対象のフレーム画像に基づいて予測画像を生成するイントラ予測とがある。イントラ予測においては、予測残差Dの量が多くなり、直交変換を実行しなければならない場合が多くある。また、インター予測においては、イントラ予測と比較して、高精細な画像を取得することができる。そこで、分割後における処理対象のCUの高さ方向、及び幅方向の画素数が2のべき乗ではない場合に、インター予測に固定する。
[第1の実施形態の変形例(1)に係る画像符号化装置12の符号化処理]
 ここで、図14は、本開示の第1の実施形態の変形例(1)に係る符号化処理の一例を示すフローチャートである。制御部101は、分割後における処理対象のCUの高さ方向、及び幅方向の画素数が2のべき乗であるか否かを判定する(ステップS61)。
 CUの高さ方向、又は幅方向の何れか一方の画素数が2のべき乗ではない場合に(ステップS61;Yes)、予測部122は、画像に応じてイントラ予測又はインター予測を実行し、実行した予測モードを示す予測モード情報Pinfoを生成する(ステップS62)。ここで、予測モード情報Pinfoには、イントラ予測とインター予測との何れを実行させるが示されたモード情報(pred_mode_flag)が含まれている。そして、蓄積バッファ116は、予測モード情報Pinfoが含まれているビットストリームを出力する。
 一方、CUの高さ方向、又は幅方向の何れか一方の画素数が2のべき乗ではない場合に(ステップS61;No)、予測部122は、インター予測を実行し、予測モード情報Pinfoを生成しない(ステップS63)。
 これにより、蓄積バッファ116は、予測モード情報Pinfoが含まれていないビットストリームを出力する。よって、画像符号化装置12は、符号量を削減することができる。
[第1の実施形態の変形例(1)に係る画像復号装置13の復号処理]
 ここで、図15は、本開示の第1の実施形態の変形例(1)に係る復号処理の一例を示すフローチャートである。復号部212は、受信したビットストリームに予測モード情報Pinfoが含まれているか否かを判定する(ステップS71)。
 ビットストリームに予測モード情報Pinfoが含まれている場合に(ステップS71;Yes)、予測部122は、予測モード情報Pinfoに応じて、イントラ予測やインター予測を実行する(ステップS72)。
 一方、ビットストリームに予測モード情報Pinfoが含まれていない場合に(ステップS71;No)、予測部122は、インター予測を実行する(ステップS73)。
[第1の実施形態の変形例(2)]
 上記の第1の実施形態では、分割後における処理対象のCUの高さ方向、及び幅方向の画素数が2のべき乗であるか否かにより直交変換及び逆直交変換の実行を制御した。ここで、CUの画素数が2のべき乗ではない場合に直交変換を実行しないのは、直交変換の処理量が増大し処理速度を低下させてしまうためである。CUのサイズが閾値よりも小さい場合には、直交変換の処理量が増大しても処理速度に与える影響は小さいと考えられる。そこで、分割後における処理対象のCUの高さ方向、及び幅方向の画素数が2のべき乗ではなくても、直交変換を実行してもよい。
[第1の実施形態の変形例(2)に係る画像符号化装置12の符号化処理]
 ここで、図16は、本開示の第1の実施形態の変形例(2)に係る符号化処理の一例を示すフローチャートである。制御部101は、分割後における処理対象のCUの高さ方向、及び幅方向の画素数が2のべき乗であるか否かを判定する(ステップS81)。
 直交変換部113は、CUの高さ方向、及び幅方向の画素数が2のべき乗である場合に(ステップS81;Yes)、予測残差Dに対して直交変換を実行する(ステップS82)。
 また、直交変換部113は、予測残差Dが含まれているか否かを示す残差データ有無フラグ(cbf)に1を設定する(ステップS83)。すなわち、直交変換部113は、予測残差Dが含まれていることを残差データ有無フラグ(cbf)に設定する。
 ステップS81において、CUの高さ方向、又は幅方向の何れか一方の画素数が2のべき乗ではない場合に(ステップS81;No)、制御部101は、CUのサイズが閾値より小さいか否かを判定する(ステップS84)。
 CUのサイズが閾値より小さい場合に(ステップS84;Yes)、直交変換部113は、ステップS82において予測残差Dに対して直交変換を実行する。
 一方、CUのサイズが閾値以上の場合に(ステップS84;Yes)、制御部101は、Transform skip、又はPCMモード等の処理により直交変換部113に直交変換を実行しない(ステップS85)。
 また、直交変換部113は、予測残差Dが含まれていないことを示す0を残差データ有無フラグ(cbf)に設定する(ステップS86)。
 このように、画像符号化装置12は、CUのサイズが閾値よりも小さい場合に直交変換を実行し、CUのサイズが閾値よりも大きい場合には直交変換を実行しない。よって、画像符号化装置12は、処理量が増大してしまうことを抑制することができる。
[第1の実施形態の変形例(2)に係る画像復号装置13の復号処理]
 画像復号装置13は、図13に示すフローチャートと同様の処理を実行する。すなわち、画像復号装置13は、残差データ有無フラグ(cbf)に基づいて、逆直交変換処理を実行する。
[第2の実施形態]
 上記の第1の実施形態では、分割後における処理対象のCUの高さ方向、及び幅方向の画素数が2のべき乗であるか否かにより直交変換及び逆直交変換の実行を制御した。第2の実施形態では、分割後における処理対象のCUの高さ方向、及び幅方向の画素数が2のべき乗ではない場合に、高さ方向、及び幅方向の画素数が2のべき乗になるCUを形成するように分割する。このように、CUを分割することで、画素数が2のべき乗ではなかったCUの画素数を2のべき乗に変更する。
[第2の実施形態に係る画像符号化装置12の符号化処理]
 ここで、図17は、本開示の第2の実施形態に係る符号化処理の一例を示すフローチャートである。制御部101は、分割後における処理対象のCUの高さ方向、及び幅方向の画素数が2のべき乗であるか否かを判定する(ステップS91)。
 直交変換部113は、CUの高さ方向、及び幅方向の画素数が2のべき乗である場合に(ステップS91;Yes)、予測残差Dに対して直交変換を実行する(ステップS92)。
 また、直交変換部113は、予測残差Dが含まれているか否かを示す残差データ有無フラグ(cbf)に1を設定する(ステップS93)。すなわち、直交変換部113は、予測残差Dが含まれていることを残差データ有無フラグ(cbf)に設定する。
 ステップS91において、CUの高さ方向、又は幅方向の何れか一方の画素数が2のべき乗ではない場合に(ステップS91;No)、制御部101は、高さ方向、又は幅方向の何れか一方の画素数が2のべき乗ではないCUを更に分割する(ステップS94)。この時、制御部101は、高さ方向、及び幅方向の画素数が2のべき乗になるCUを形成するように分割する。そして、ステップS92に移行する。
 なお、ステップS92に移行するのは一例であって、ステップS91に移行してもよい。すなわち、CUの分割後においてもCUの高さ方向、又は幅方向の何れか一方の画素数が2のべき乗であるか否かを判定し、2のべき乗ではない場合に、再度CUを分割してもよい。
 図18から図20によりCUの分割の態様を例示して説明する。ここで、図18は、本開示の第2の実施形態に係るCUの分割態様の一例を示す図である。図18(a)は、分割前のCUを示している。図18(b)は、1回目の分割後のCUを示している。図18(c)は、2回目の分割後のCUを示している。
 図18(b)に示す1回目のCUの分割により、分割した境界の右側のCUの幅方向の画素数が2のべき乗ではなくなっている。そこで、図18(c)に示す2回目のCUの分割を実行する。このように、左右対称に分割することにより、CUの幅方向の画素数が2のべき乗になる。
 図19は、本開示の第2の実施形態に係るCUの分割態様の一例を示す図である。図19(a)は、分割前のCUを示している。図19(b)は、1回目の分割後のCUを示している。図19(c)は、2回目の分割後のCUを示している。
 図19(b)に示す1回目のCUの分割により、分割した境界の下側のCUの高さ方向の画素数が2のべき乗ではなくなっている。そこで、図19(c)に示す2回目のCUの分割を実行する。このように、上下対称に分割することにより、CUの高さ方向の画素数が2のべき乗になる。
 図20は、本開示の第2の実施形態に係るCUの分割態様の一例を示す図である。図20(a)は、分割後のCUを示している。図20(b)は、(a)に示すCUを分割した状態を示している。図20(c)は、(b)に示すCUを分割した状態を示している。
 図20(b)に示す1回目のCUの分割により、分割した境界の下側のCUの高さ方向の画素数が2のべき乗ではなくなっている。そこで、図20(c)に示す2回目のCUの分割を実行する。このように、上下対称や左右対称に限らず、非対象になるように分割してもよい。
[第2の実施形態に係る画像復号装置13の復号化処理]
 第2の実施形態において、画像符号化装置12は、CUの高さ方向、及び幅方向の画素数が2のべき乗となるように分割し、直交変換を実行する。よって、画像復号装置13は、各ブロックに対して逆直交変換を実行する。
[第3の実施形態]
 上記の第1の実施形態では、分割後における処理対象のCUの高さ方向、及び幅方向の画素数が2のべき乗であるか否かにより直交変換及び逆直交変換の実行を制御した。第3の実施形態では、画素数が2のべき乗である方向に対して、直交変換、及び逆直交変換を実行する。
 まず、CUの高さ方向、及び幅方向の両方の画素数が2のべき乗である場合について説明する。ここで、図21は、本開示の第3の実施形態に係る高さ方向、及び幅方向の画素数が2のべき乗のCUに対する直交変換の処理手順を説明する図である。図21(a)は、幅方向について1ラインごとに直交変換を実行していることを示す図である。図21(b)は、高さ方向について1ラインごとに直交変換を実行していることを示す図である。
 直交変換部113は、図21(a)に示すように、幅方向について1ラインごとに直交変換を実行する。次いで、実行した直交変換後の係数に対して、図21(b)に示すように、高さ方向について1ラインごとに直交変換を実行する。なお、直交変換を実行する方向は、先に高さ方向について実行し、後で幅方向について実行してもよい。そして、幅方向と高さ方向との何れを先に実行しても理論上は同一の結果が得られる。但し、途中の演算精度で丸め処理が実行されると、直交変換を実行する方向の順番を変更すると誤差が生じる。そこで、どちらの方向を先に実行するかを規定し、規定された順番で直交変換を実行することが好ましい。
 逆直交変換の場合には、逆の順番で直交変換を実行する。すなわち、直交変換において幅方向を先に実行した場合に、先に高さ方向について逆直交変換を実行する。次に、幅方向について逆直交変換を実行する。
[第3の実施形態に係る画像符号化装置12の符号化処理]
 ここで、図22は、本開示の第3の実施形態に係る高さ方向の画素数が2のべき乗ではないCUを示す図である。図22(a)は、幅方向の画素数は2のべき乗であるため直交変換を実行することを示している。図22(b)は、高さ方向の画素数は2のべき乗ではないため直交変換を実行しないことを示している。そして、図22に示すように、高さ方向の画素数は2のべき乗ではない場合には、幅方向の画素数は2のべき乗であるため直交変換し、高さ方向の直交変換はスキップして、実行しない。
 ここで、図23は、本開示の第3の実施形態に係る幅方向の画素数が2のべき乗ではないCUを示す図である。図23(a)は、幅方向の画素数は2のべき乗ではないため直交変換を実行しないことを示している。図23(b)は、高さ方向の画素数は2のべき乗であるため直交変換を実行することを示している。そして、図23に示すように、幅方向の画素数は2のべき乗ではない場合には、幅方向の直交変換はスキップして実行せずに、高さ方向の直交変換は2のべき乗であるため実行することを示している。
[第3の実施形態に係る画像復号装置13の復号処理]
 図22に示す高さ方向の画素数が2のべき乗ではないCUの場合には、幅方向について逆直交変換を実行する。一方、高さ方向について逆直交変換を実行しない。また、図23に示す幅方向の画素数が2のべき乗ではないCUの場合には、幅方向について逆直交変換を実行しない。一方、高さ方向について逆直交変換を実行する。このように、画像符号化装置12及び画像復号装置13は、2のべき乗ではない方向に対しては直交変換を実行しないため大幅な処理量の増加を抑制することができる。
[第4の実施形態]
 上記の第1の実施形態では、分割後における処理対象のCUの高さ方向、及び幅方向の画素数が2のべき乗であるか否かにより直交変換及び逆直交変換の実行を制御した。第4の実施形態では、高さ方向、又は幅方向の何れか一方の画素数が2のべき乗ではないCUの内部における、高さ方向、及び幅方向の画素数が2のべき乗になる最大領域に対して直交変換を実行する。そして、最大領域を除いた残りの領域には、直交変換を実行しない。また、直交変換を実行した領域ごとに、直交変換を実行した際のRD(Rate Distortion)コストを算出する。また、領域ごとにRDコストを比較する。これにより、RDコストに基づいた最適な領域を決定することが可能になる。
 ここで、図24は、本開示の第4の実施形態に係る直交変換を実行する領域のバリエーションの一例を示す図である。図24では、分割した場合に、右側領域の幅方向の画素数が2のべき乗ではなくなってしまった。そこで、右側領域において、画素数が2のべき乗であって、高さ方向及び幅方向が同一の画素数になる最大領域に対して直交変換を実行することを示している。すなわち、右側領域において、画素数が2のべき乗になる正方形の最大領域に対して直交変換を実行することを示している。図24(a)は、右側領域の左上の正方形の領域に直交変換を実行することを示している。図24(b)は、右側領域の右上の正方形の領域に直交変換を実行することを示している。図24(c)は、右側領域の左下の正方形の領域に直交変換を実行することを示している。図24(d)は、右側領域の右下の正方形の領域に直交変換を実行することを示している。
[第4の実施形態に係る画像符号化装置12の符号化処理]
 ここで、図25は、本開示の第4の実施形態に係る符号化処理の一例を示すフローチャートである。そして、図25に示す符号化処理は、図24に示した各領域に対して直交変換を実行してRDコストを算出することを示している。
 制御部101は、図24(a)に示す左上の領域に、直交変換部113に直交変換を実行させて、左上の領域に対するRDコストを算出する(ステップS101)。なお、制御部101は、最大領域を除いた残りの領域には、直交変換部113に直交変換を実行させない。
 制御部101は、図24(b)に示す右上の領域に、直交変換部113に直交変換を実行させて、右上の領域に対するRDコストを算出する(ステップS102)。なお、制御部101は、最大領域を除いた残りの領域には、直交変換部113に直交変換を実行させない。
 制御部101は、図24(c)に示す左下の領域に、直交変換部113に直交変換を実行させて、左下の領域に対するRDコストを算出する(ステップS103)。なお、制御部101は、最大領域を除いた残りの領域には、直交変換部113に直交変換を実行させない。
 制御部101は、図24(d)に示す右下の領域に、直交変換部113に直交変換を実行させて、右下の領域に対するRDコストを算出する(ステップS104)。なお、制御部101は、最大領域を除いた残りの領域には、直交変換部113に直交変換を実行させない。
 ステップS101からステップS104で算出したRDコストのうち、左上のRDコストが最小であるか否かを判定する(ステップS105)。左上のRDコストが最小である場合に(ステップS105;Yes)、制御部101は、直交変換の位置を示す位置情報にtr_pos=0を設定する(ステップS106)。すなわち、制御部101は、位置情報に左上の領域に直交変換を実行したことを設定する。
 左上のRDコストが最小ではない場合に(ステップS105;No)、ステップS101からステップS104で算出したRDコストのうち、右上のRDコストが最小であるか否かを判定する(ステップS107)。
 右上のRDコストが最小である場合に(ステップS107;Yes)、制御部101は、直交変換の位置を示す位置情報にtr_pos=1を設定する(ステップS108)。すなわち、制御部101は、位置情報に右上の領域に直交変換を実行したことを設定する。
 右上のRDコストが最小ではない場合に(ステップS107;No)、ステップS101からステップS104で算出したRDコストのうち、左下のRDコストが最小であるか否かを判定する(ステップS109)。
 右下のRDコストが最小である場合に(ステップS109;Yes)、制御部101は、直交変換の位置を示す位置情報にtr_pos=2を設定する(ステップS110)。すなわち、制御部101は、位置情報に左下の領域に直交変換を実行したことを設定する。
 右下のRDコストが最小ではない場合に(ステップS109;No)、制御部101は、直交変換の位置を示す位置情報にtr_pos=3を設定する(ステップS111)。すなわち、制御部101は、位置情報に右下の領域に直交変換を実行したことを設定する。
 量子化部114は、直交変換後の係数を量子化する(ステップS112)。
 蓄積バッファ116は、量子化された信号と、直交変換の位置を示す位置情報を含むビットストリームを出力する(ステップS113)。
[第4の実施形態に係る画像復号装置13の復号処理]
 ここで、図26は、本開示の第4の実施形態に係る復号処理の一例を示すフローチャートである。そして、図26に示す復号処理は、直交変換の位置を示す位置情報に基づいて、直交変換された領域に対して逆直交変換を実行する。
 蓄積バッファ211は、量子化された信号と、直交変換の位置を示す位置情報(tr_pos)とを含むビットストリームを受信する(ステップS121)。
 逆量子化部213は、量子化された信号を逆量子化する(ステップS122)。
 復号部212は、ビットストリームから直交変換が実行された位置を示す位置情報(tr_pos)を抽出する(ステップS123)。
 復号部212は、位置情報(tr_pos)が左上で直交変換が実行されたことを示しているか否かを判定する(ステップS124)。すなわち、復号部212は、tr_pos==0であるか否かを判定する。
 位置情報(tr_pos)が左上で直交変換が実行されたことを示している場合に(ステップS124;Yes)、復号部212は、図24(a)に示す左上の領域に対して逆直交変換部214に逆直交変換を実行させる(ステップS125)。
 位置情報(tr_pos)が左上で直交変換が実行されたことを示していない場合に(ステップS124;No)、復号部212は、位置情報(tr_pos)が右上で直交変換が実行されたことを示しているか否かを判定する(ステップS126)。すなわち、復号部212は、tr_pos==1であるか否かを判定する。
 位置情報(tr_pos)が右上で直交変換が実行されたことを示している場合に(ステップS126;Yes)、復号部212は、図24(b)に示す右上の領域に対して逆直交変換部214に逆直交変換を実行させる(ステップS127)。
 位置情報(tr_pos)が右上で直交変換が実行されたことを示していない場合に(ステップS126;No)、復号部212は、位置情報(tr_pos)が左下で直交変換が実行されたことを示しているか否かを判定する(ステップS128)。すなわち、復号部212は、tr_pos==2であるか否かを判定する。
 位置情報(tr_pos)が左下で直交変換が実行されたことを示している場合に(ステップS128;Yes)、復号部212は、図24(c)に示す左下の領域に対して逆直交変換部214に逆直交変換を実行させる(ステップS129)。
 位置情報(tr_pos)が左下で直交変換が実行されたことを示していない場合に(ステップS128;No)、復号部212は、図24(d)に示す右下の領域に対して逆直交変換部214に逆直交変換を実行させる(ステップS130)。
 なお、RDコストの算出において、画素数が2のべき乗になる正方形の最大領域に対して直交変換を実行した。しかしながら、直交変換を実行する領域は、正方形に限らず、長方形であってもよい。
 ここで、図27は、本開示の第4の実施形態に係る直交変換を実行する領域のバリエーションの一例を示す図である。図27(a)は、右側領域の左上の長方形の領域に直交変換を実行することを示している。図27(b)は、右側領域の右上の長方形の領域に直交変換を実行することを示している。図27では、分割した場合に、右側領域の幅方向の画素数が2のべき乗ではなくなってしまった。一方、右側領域の高さ方向の画素数は2のべき乗になっている。そこで、右側領域において、幅方向の画素数が2のべき乗になる最大領域に対して直交変換を実行することを示している。すなわち、右側領域において、画素数が2のべき乗になる長方形の最大領域に対して直交変換を実行することを示している。そして、最大領域を除いた残りの領域には直交変換は実行されないことを示している。
[第4の実施形態の変形例(1)]
 上記の第4の実施形態では、分割した後における高さ方向、又は幅方向の何れか一方の画素数が2のべき乗ではないCUから、高さ方向、及び幅方向の画素数が2のべき乗になる最大領域に対して直交変換を実行した。第4の実施形態の変形例(1)では、最大領域に対する直交変換で残った領域から、高さ方向、又は幅方向の画素数が2のべき乗になる最大領域を分割し、分割した領域への直交変換を再帰的に繰り返す。すなわち、直交変換が実行されていない領域が無くなるまで、最大領域を分割と、分割した領域への直交変換とを再帰的に繰り返す。
[第4の実施形態の変形例(1)に係る画像符号化装置12の符号化処理]
 図28は、本開示の第4の実施形態の変形例(1)に係る直交変換で残った領域に対して、画素数が2のべき乗になる最大領域に直交変換を再帰的に実行した場合の一例を示す図である。そして、図28は、左側から画素数が2のべき乗になる最大領域を分割している。また、図28は、左側の領域に直交変換を実行して残った右側の全領域が、画素数が2のべき乗になる最大領域となる。そこで、最大領域を分割し、分割した右側の領域に対して直交変換を実行することを示している。また、図28(a)と(b)とは、異なる分割位置を示している。すなわち、制御部101は、最大領域に対する直交変換で残った領域から、高さ方向、又は幅方向の画素数が2のべき乗になる最大領域を更に分割する。また、制御部101は、分割した最大領域に対して直交変換部113に直交変換を実行させる。そして、制御部101は、最大領域を分割し、分割した領域に直交変換を実行させる処理を高さ方向、又は幅方向の画素数が2のべき乗ではない領域が無くなるまで繰り返し実行させる。
 また、図29は、本開示の第4の実施形態の変形例(1)に係る直交変換で残った領域に対して、画素数が2のべき乗になる最大領域に直交変換を再帰的に実行した場合の例を示す図である。図29は、図28が左側から画素数が2のべき乗になる最大領域を分割しているのに対して、右側から領域の分割と、直交変換とを実行している。
[第4の実施形態の変形例(1)に係る画像復号装置13の復号処理]
 画像復号装置13は、直交変換が実行された各領域に対して、逆直交変換を実行する。
 <コンピュータの構成例>
 次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
 図30は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示すブロック図である。
 プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク305やROM303に予め記録しておくことができる。
 あるいはまた、プログラムは、ドライブ309によって駆動されるリムーバブル記録媒体311に格納(記録)しておくことができる。このようなリムーバブル記録媒体311は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体311としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
 なお、プログラムは、上述したようなリムーバブル記録媒体311からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク305にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
 コンピュータは、CPU(Central Processing Unit) 302を内蔵しており、CPU302には、バス301を介して、入出力インタフェース310が接続されている。
 CPU302は、入出力インタフェース310を介して、ユーザによって、入力部307が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory) 303に格納されているプログラムを実行する。あるいは、CPU302は、ハードディスク305に格納されたプログラムを、RAM(Random Access Memory) 304にロードして実行する。
 これにより、CPU302は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU302は、その処理結果を、必要に応じて、例えば、入出力インタフェース310を介して、出力部306から出力、あるいは、通信部308から送信、さらには、ハードディスク305に記録等させる。
 なお、入力部307は、キーボードや、マウス、マイク等で構成される。また、出力部306は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
 ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
 また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
 さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
 また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
 また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
 また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
 また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
 なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
 なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
 <本技術の適用対象>
 本技術は、任意の画像符号化・復号方式に適用することができる。つまり、上述した本技術と矛盾しない限り、変換(逆変換)、量子化(逆量子化)、符号化(復号)、予測等、画像符号化・復号に関する各種処理の仕様は任意であり、上述した例に限定されない。また、上述した本技術と矛盾しない限り、これらの処理の内の一部を省略してもよい。
 また本技術は、複数の視点(ビュー(view))の画像を含む多視点画像の符号化・復号を行う多視点画像符号化・復号システムに適用することができる。その場合、各視点(ビュー(view))の符号化・復号において、本技術を適用するようにすればよい。
 さらに本技術は、所定のパラメータについてスケーラビリティ(scalability)機能を有するように複数レイヤ化(階層化)された階層画像の符号化・復号を行う階層画像符号化(スケーラブル符号化)・復号システムに適用することができる。その場合、各階層(レイヤ)の符号化・復号において、本技術を適用するようにすればよい。
 実施形態に係る画像符号化装置や画像復号装置は、例えば、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信などにおける送信機や受信機(例えばテレビジョン受像機や携帯電話機)、または、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録したり、これら記憶媒体から画像を再生したりする装置(例えばハードディスクレコーダやカメラ)などの、様々な電子機器に応用され得る。
 また、本技術は、任意の装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ(例えばビデオプロセッサ)、複数のプロセッサ等を用いるモジュール(例えばビデオモジュール)、複数のモジュール等を用いるユニット(例えばビデオユニット)、ユニットにさらにその他の機能を付加したセット(例えばビデオセット)等(すなわち、装置の一部の構成)として実施することもできる。
 さらに、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。例えば、コンピュータ、AV(Audio Visual)機器、携帯型情報処理端末、IoT(Internet of Things)デバイス等の任意の端末に対して、画像(動画像)に関するサービスを提供するクラウドサービスに適用することもできる。
 なお、本技術を適用したシステム、装置、処理部等は、例えば、交通、医療、防犯、農業、畜産業、鉱業、美容、工場、家電、気象、自然監視等、任意の分野に利用することができる。また、その用途も任意である。
 例えば、本技術は、観賞用コンテンツ等の提供の用に供されるシステムやデバイスに適用することができる。また、例えば、本技術は、交通状況の監理や自動運転制御等、交通の用に供されるシステムやデバイスにも適用することができる。さらに、例えば、本技術は、セキュリティの用に供されるシステムやデバイスにも適用することができる。また、例えば、本技術は、機械等の自動制御の用に供されるシステムやデバイスに適用することができる。さらに、例えば、本技術は、農業や畜産業の用に供されるシステムやデバイスにも適用することができる。また、本技術は、例えば火山、森林、海洋等の自然の状態や野生生物等を監視するシステムやデバイスにも適用することができる。さらに、例えば、本技術は、スポーツの用に供されるシステムやデバイスにも適用することができる。
 なお、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
 なお、本技術は以下のような構成も取ることができる。
(1)
 画像を分割して得られるブロックに対して直交変換を実行する直交変換部と、
 前記ブロックの高さ方向、又は幅方向の画素数が2のべき乗であるか否かに応じて前記直交変換部を制御する制御部と、
 を有する画像処理装置。
(2)
 前記制御部は、前記ブロックの画素数が2のべき乗はない場合に、前記直交変換を実行させないように前記直交変換部を制御する、
 (1)に記載の画像処理装置。
(3)
 量子化を実行する量子化部を更に有し、
 前記制御部は、前記ブロックの画素数が2のべき乗ではない場合に、前記直交変換を前記直交変換部に実行させずに、前記量子化を実行させるように前記量子化部を制御する、
 (1)又は(2)に記載の画像処理装置。
(4)
 前記制御部は、前記ブロックの画素数が2のべき乗であるか否かに応じて、処理対象の画像とは異なる画像に基づいて予測画像を生成するインター予測にするか、処理対象の画像に基づいて予測画像を生成するイントラ予測にするかを制御する、
 (1)乃至(3)の何れか一項に記載の画像処理装置。
(5)
 前記制御部は、前記ブロックの画素数が2のべき乗ではない場合に、前記インター予測を実行させるように制御する、
 (4)に記載の画像処理装置。
(6)
 前記インター予測と、前記イントラ予測との何れを実行させるのかが示された予測モード情報を出力する出力部を更に有し、
 前記制御部は、前記ブロックの画素数が2のべき乗ではない場合に、前記予測モード情報を出力させないように前記出力部を制御する、
 (4)に記載の画像処理装置。
(7)
 前記制御部は、前記予測モード情報が提供されない場合に、前記インター予測を実行させるように制御する、
 (6)に記載の画像処理装置。
(8)
 前記制御部は、高さ方向、又は幅方向の画素数が2のべき乗ではない前記ブロックのサイズが閾値よりも小さい場合に、前記直交変換を実行させるように前記直交変換部を制御する、
 (1)乃至(7)の何れか一項に記載の画像処理装置。
(9)
 前記制御部は、高さ方向、又は幅方向の画素数が2のべき乗ではない前記ブロックを、高さ方向、及び幅方向の画素数が2のべき乗になるブロックを形成するように分割し、
 前記直交変換部は、前記制御部が分割した前記ブロックに対して直交変換を実行する、
 (1)乃至(8)の何れか一項に記載の画像処理装置。
(10)
 前記制御部は、前記ブロックの高さ方向又は幅方向の何れか一方の画素数が2のべき乗ではない場合に、画素数が2のべき乗である方向に対して、前記直交変換を実行させるように前記直交変換部を制御する、
 (1)乃至(9)の何れか一項に記載の画像処理装置。
(11)
 前記制御部は、高さ方向、及び幅方向の画素数が2のべき乗ではない前記ブロックの内部における、高さ方向、及び幅方向の画素数が2のべき乗となる最大領域に対して、前記直交変換を実行させるように前記直交変換部を制御する、
 (1)に記載の画像処理装置。
(12)
 前記制御部は、複数の前記最大領域のうち、直交変換が実行された際にコストが低い位置の当該最大領域に対して、直交変換を実行させるように前記直交変換部を制御する、
 (11)に記載の画像処理装置。
(13)
 前記制御部は、前記直交変換が実行された前記最大領域の位置を示す位置情報を出力させるように制御する、
 (11)又は(12)に記載の画像処理装置。
(14)
 前記制御部は、前記ブロックにおける前記最大領域を除いた残りの領域には、前記直交変換を実行させないように前記直交変換部を制御する、
 (11)乃至(13)の何れか一項に記載の画像処理装置。
(15)
 前記制御部は、高さ方向、又は幅方向の画素数が2のべき乗ではない前記ブロックから前記最大領域を分割し、前記直交変換部に当該最大領域に直交変換を実行させる処理を、高さ方向、又は幅方向の画素数が2のべき乗ではない前記ブロックが無くなるまで繰り返し実行させるように制御する、
 (11)乃至(14)の何れか一項に記載の画像処理装置。
(16)
 画像を分割して得られるブロックに対して直交変換を実行し、
 前記ブロックの高さ方向、又は幅方向の画素数が2のべき乗であるか否かに応じて前記直交変換を制御する、
 画像処理方法。
(17)
 画像処理装置が有するコンピュータを、
 画像を分割して得られるブロックに対して直交変換を実行する直交変換部、
 前記ブロックの高さ方向、又は幅方向の画素数が2のべき乗であるか否かに応じて前記直交変換部を制御する制御部、
 として機能させるための画像処理プログラム。
  11 画像処理システム
  12 画像符号化装置
  13 画像復号装置
  21 画像処理チップ
  22 外部メモリ
  23 符号化回路
  24 キャッシュメモリ
  31 画像処理チップ
  32 外部メモリ
  33 復号回路
  34 キャッシュメモリ
 101 制御部
 122 予測部
 113 直交変換部
 115 符号化部
 118 逆直交変換部
 120 インループフィルタ部
 212 復号部
 214 逆直交変換部
 216 インループフィルタ部
 219 予測部

Claims (17)

  1.  画像を分割して得られるブロックに対して直交変換を実行する直交変換部と、
     前記ブロックの高さ方向、又は幅方向の画素数が2のべき乗であるか否かに応じて前記直交変換部を制御する制御部と、
     を有する画像処理装置。
  2.  前記制御部は、前記ブロックの画素数が2のべき乗はない場合に、前記直交変換を実行させないように前記直交変換部を制御する、
     請求項1に記載の画像処理装置。
  3.  量子化を実行する量子化部を更に有し、
     前記制御部は、前記ブロックの画素数が2のべき乗ではない場合に、前記直交変換を前記直交変換部に実行させずに、前記量子化を実行させるように前記量子化部を制御する、
     請求項1に記載の画像処理装置。
  4.  前記制御部は、前記ブロックの画素数が2のべき乗であるか否かに応じて、処理対象の画像とは異なる画像に基づいて予測画像を生成するインター予測にするか、処理対象の画像に基づいて予測画像を生成するイントラ予測にするかを制御する、
     請求項1に記載の画像処理装置。
  5.  前記制御部は、前記ブロックの画素数が2のべき乗ではない場合に、前記インター予測を実行させるように制御する、
     請求項4に記載の画像処理装置。
  6.  前記インター予測と、前記イントラ予測との何れを実行させるのかが示された予測モード情報を出力する出力部を更に有し、
     前記制御部は、前記ブロックの画素数が2のべき乗ではない場合に、前記予測モード情報を出力させないように前記出力部を制御する、
     請求項4に記載の画像処理装置。
  7.  前記制御部は、前記予測モード情報が提供されない場合に、前記インター予測を実行させるように制御する、
     請求項6に記載の画像処理装置。
  8.  前記制御部は、高さ方向、又は幅方向の画素数が2のべき乗ではない前記ブロックのサイズが閾値よりも小さい場合に、前記直交変換を実行させるように前記直交変換部を制御する、
     請求項1に記載の画像処理装置。
  9.  前記制御部は、高さ方向、又は幅方向の画素数が2のべき乗ではない前記ブロックを、高さ方向、及び幅方向の画素数が2のべき乗になるブロックを形成するように分割し、
     前記直交変換部は、前記制御部が分割した前記ブロックに対して直交変換を実行する、
     請求項1に記載の画像処理装置。
  10.  前記制御部は、前記ブロックの高さ方向又は幅方向の何れか一方の画素数が2のべき乗ではない場合に、画素数が2のべき乗である方向に対して、前記直交変換を実行させるように前記直交変換部を制御する、
     請求項1に記載の画像処理装置。
  11.  前記制御部は、高さ方向、及び幅方向の画素数が2のべき乗ではない前記ブロックの内部における、高さ方向、及び幅方向の画素数が2のべき乗となる最大領域に対して、前記直交変換を実行させるように前記直交変換部を制御する、
     請求項1に記載の画像処理装置。
  12.  前記制御部は、複数の前記最大領域のうち、直交変換が実行された際にコストが低い位置の当該最大領域に対して、直交変換を実行させるように前記直交変換部を制御する、
     請求項11に記載の画像処理装置。
  13.  前記制御部は、前記直交変換が実行された前記最大領域の位置を示す位置情報を出力させるように制御する、
     請求項11に記載の画像処理装置。
  14.  前記制御部は、前記ブロックにおける前記最大領域を除いた残りの領域には、前記直交変換を実行させないように前記直交変換部を制御する、
     請求項11に記載の画像処理装置。
  15.  前記制御部は、高さ方向、又は幅方向の画素数が2のべき乗ではない前記ブロックから前記最大領域を分割し、前記直交変換部に当該最大領域に直交変換を実行させる処理を、高さ方向、又は幅方向の画素数が2のべき乗ではない前記ブロックが無くなるまで繰り返し実行させるように制御する、
     請求項11に記載の画像処理装置。
  16.  画像を分割して得られるブロックに対して直交変換を実行し、
     前記ブロックの高さ方向、又は幅方向の画素数が2のべき乗であるか否かに応じて前記直交変換を制御する、
     画像処理方法。
  17.  画像処理装置が有するコンピュータを、
     画像を分割して得られるブロックに対して直交変換を実行する直交変換部、
     前記ブロックの高さ方向、又は幅方向の画素数が2のべき乗であるか否かに応じて前記直交変換部を制御する制御部、
     として機能させるための画像処理プログラム。
PCT/JP2019/017519 2018-07-06 2019-04-24 画像処理装置、画像処理方法及び画像処理プログラム WO2020008714A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/250,301 US20220060723A1 (en) 2018-07-06 2019-04-24 Image processing device, image processing method, and image processing program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-129522 2018-07-06
JP2018129522 2018-07-06

Publications (1)

Publication Number Publication Date
WO2020008714A1 true WO2020008714A1 (ja) 2020-01-09

Family

ID=69060630

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/017519 WO2020008714A1 (ja) 2018-07-06 2019-04-24 画像処理装置、画像処理方法及び画像処理プログラム

Country Status (2)

Country Link
US (1) US20220060723A1 (ja)
WO (1) WO2020008714A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022206735A1 (en) * 2021-03-30 2022-10-06 Beijing Bytedance Network Technology Co., Ltd. Intra-prediction on non-dyadic blocks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018065511A1 (en) * 2016-10-05 2018-04-12 Thomson Licensing Method and apparatus for encoding and decoding a video
WO2018068762A1 (en) * 2016-10-14 2018-04-19 Mediatek Inc. Block partitioning using tree structures
WO2018092870A1 (ja) * 2016-11-21 2018-05-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018065511A1 (en) * 2016-10-05 2018-04-12 Thomson Licensing Method and apparatus for encoding and decoding a video
WO2018068762A1 (en) * 2016-10-14 2018-04-19 Mediatek Inc. Block partitioning using tree structures
WO2018092870A1 (ja) * 2016-11-21 2018-05-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022206735A1 (en) * 2021-03-30 2022-10-06 Beijing Bytedance Network Technology Co., Ltd. Intra-prediction on non-dyadic blocks

Also Published As

Publication number Publication date
US20220060723A1 (en) 2022-02-24

Similar Documents

Publication Publication Date Title
US11343538B2 (en) Image processing apparatus and method
US20230007255A1 (en) Image processing device and method
US20210144376A1 (en) Image processing apparatus and method
US11445218B2 (en) Image processing apparatus and method
WO2019188465A1 (ja) 画像符号化装置、画像符号化方法、画像復号装置、および画像復号方法
US20210385456A1 (en) Image processing apparatus and method
US20240171746A1 (en) Image processing device and method
US20210037248A1 (en) Image encoding device, image encoding method, image decoding device, and image decoding method
WO2020008714A1 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
US20220385904A1 (en) Image processing device and method
KR20240018432A (ko) 화상 처리 장치 및 방법
US20230007265A1 (en) Image processing device, bit stream generation method, coefficient data generation method, and quantization coefficient generation method
WO2020066641A1 (ja) 画像処理装置および方法
US20220394256A1 (en) Image processing device and method
US20220286681A1 (en) Image processing device and method
WO2020129636A1 (ja) 画像符号化装置、画像符号化方法、画像復号装置、および画像復号方法
US20230045106A1 (en) Image processing apparatus and method
CA3228003A1 (en) Image processing apparatus and method

Legal Events

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

Ref document number: 19831556

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP