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

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

Info

Publication number
WO2020008769A1
WO2020008769A1 PCT/JP2019/021847 JP2019021847W WO2020008769A1 WO 2020008769 A1 WO2020008769 A1 WO 2020008769A1 JP 2019021847 W JP2019021847 W JP 2019021847W WO 2020008769 A1 WO2020008769 A1 WO 2020008769A1
Authority
WO
WIPO (PCT)
Prior art keywords
mode
unit
prediction
block
motion information
Prior art date
Application number
PCT/JP2019/021847
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 ソニー株式会社
Publication of WO2020008769A1 publication Critical patent/WO2020008769A1/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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the present 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
  • MC motion compensation
  • Non-Patent Document 1 This allows the image processing apparatus to compensate for not only translational movement (parallel movement) between screens but also rotational movement and changes in shape such as enlargement and reduction during inter prediction processing, thereby producing a highly accurate predicted image. Can be generated.
  • JVET-C1001 Joint Exploration Test Model 4
  • a merge mode for acquiring motion information of the current block based on motion information of an encoded block may be used.
  • motion information for affine transformation is set in an encoded block
  • a high-precision predicted image may not be generated when the merge mode is used.
  • the present disclosure proposes an image processing device, an image processing method, and an image processing program that can generate a highly accurate predicted image.
  • an image processing device includes a first image processing apparatus configured to generate a first type of motion information based on a first type of motion information for an affine transformation set in an encoded block.
  • a prediction unit that performs motion compensation in any one of the modes.
  • FIG. 9 is a diagram illustrating an inter prediction process for performing motion compensation based on one motion vector.
  • FIG. 14 is a diagram illustrating an inter prediction process for performing motion compensation based on one motion vector and a rotation angle. It is a figure explaining the inter prediction processing which performs motion compensation based on two motion vectors. It is a figure explaining the inter prediction processing which performs motion compensation based on three motion vectors. It is a figure showing signs that a block translates by affine transformation.
  • FIG. 9 is a diagram illustrating a state in which blocks are skewed by affine transformation. It is a figure showing signs that a block rotates by affine transformation.
  • FIG. 7 is a diagram illustrating a state where a block is enlarged or reduced by affine transformation.
  • FIG. 3 is a diagram illustrating QTBT.
  • FIG. 5 is a diagram illustrating a first example of a motion occurring in each block in an image.
  • FIG. 9 is a diagram illustrating a second example of a motion occurring in each block in an image.
  • FIG. 11 is a diagram illustrating a third example of the motion occurring in each block in the image.
  • FIG. 14 is a diagram illustrating a fourth example of the motion that occurs in each block in the image.
  • 1 is a block diagram illustrating a configuration example of an image encoding device that is an example of an image processing device according to the present disclosure. It is a figure explaining a translation mode.
  • FIG. 5 is a diagram illustrating a first example of a translation rotation mode.
  • FIG. 9 is a diagram illustrating a second example of the translation rotation mode.
  • FIG. 4 is a diagram illustrating a first example of a translation scaling mode.
  • FIG. 9 is a diagram illustrating a second example of the translation scaling mode.
  • FIG. 3 is a diagram illustrating motion compensation mode information and parameter information in an AMVP mode.
  • FIG. 3 is a diagram illustrating motion compensation mode information and parameter information in a merge mode.
  • FIG. 9 is a diagram illustrating a motion vector included in a target parameter that is a candidate for a prediction vector. It is a flowchart explaining an image encoding process. It is a flowchart explaining a setting process. It is a flowchart explaining an inter encoding process.
  • FIG. 4 is a diagram illustrating a first example of a translation scaling mode.
  • FIG. 9 is a diagram illustrating a second example of the translation scaling mode.
  • FIG. 3 is a diagram illustrating motion compensation mode information and parameter information in an AMVP mode.
  • FIG. 9 is a diagram illustrating a positional relationship between a current block and an encoded block that is a reference candidate.
  • FIG. 9 is a diagram illustrating a merge behavior.
  • FIG. 9 is a diagram illustrating a merge behavior.
  • FIG. 9 is a diagram illustrating a merge behavior.
  • FIG. 9 is a diagram illustrating a merge behavior.
  • FIG. 9 is a diagram illustrating a merge behavior. It is a flowchart explaining a merge process.
  • FIG. 11 is a diagram illustrating variables used for calculation at the time of merging.
  • 13 is a flowchart illustrating another example of the merge process.
  • 13 is a flowchart illustrating another example of the merge process.
  • FIG. 21 is a block diagram illustrating a configuration example of an image decoding device that is an example of an image processing device according to the present disclosure. It is a flowchart explaining an image decoding process. It is a flowchart explaining an inter decoding process.
  • FIG. 3 is a block diagram illustrating a configuration example of computer hardware.
  • FIG. 46 is a block diagram illustrating an example of a schematic configuration of a television device.
  • FIG. 3 is a block diagram illustrating an example of a schematic configuration of a mobile phone. It is a block diagram which shows an example of a schematic structure of a recording / reproducing apparatus.
  • FIG. 3 is a block diagram illustrating an example of a schematic configuration of an imaging device.
  • FIG. 3 is a block diagram illustrating an example of a schematic configuration of a video set.
  • FIG. 2 is a block diagram illustrating an example of a schematic configuration of a video processor.
  • FIG. 35 is a block diagram illustrating another example of a schematic configuration of the video processor.
  • FIG. 1 is a block diagram illustrating an example of a schematic configuration of a network system.
  • Configuration example of image decoding device 2-10 Processing of image decoding device 2.
  • Second embodiment computer 3.
  • Third embodiment television device 4.
  • Fourth embodiment mobile phone
  • Fifth embodiment recording / reproducing device7. 6.
  • Sixth embodiment imaging device Seventh Embodiment: Video Set 8-1.
  • FIG. 1 is a diagram illustrating an inter prediction process (hereinafter, referred to as a two-parameter MC prediction process) that performs motion compensation based on one motion vector.
  • the horizontal direction (horizontal direction) of an image (picture) is defined as x direction
  • the vertical direction (vertical direction) is defined as y direction.
  • a two-parameter MC prediction process one motion vector v c (v cx, v cy ) against the prediction target block 11 (current block) is determined. Then, based on the motion vector v c , a block 13 having the same size as the block 11 existing at a position separated by the motion vector v c from the block 11 in the reference image at a different time from the picture 10 including the block 11 By performing the translation, motion compensation is performed, and a predicted image of the block 11 is generated.
  • the blocks are, for example, TB, TU, PU, and CU.
  • the affine transformation is not performed on the reference image, and a predicted image in which only translation between screens is compensated is generated.
  • the parameters used for the inter prediction process are two of v cx and v cy .
  • Such inter prediction processing is employed in AVC (Advanced Video Coding), HEVC (High Efficiency Video Coding), and the like.
  • FIG. 2 is a diagram illustrating an inter prediction process for performing motion compensation based on one motion vector and a rotation angle.
  • one in the inter prediction process for performing motion compensation based on a motion vector rotation angle one for block 11 to be predicted motion vector v c (v cx, v cy ) and the rotation angle ⁇ is determined. Then, in the reference image at a different time from the picture 10 including the block 11, a block 21 having the same size as the block 11 existing at a position separated from the block 11 by the motion vector v c with a rotation angle ⁇ is moved. motion compensation is performed by affine transformation on the basis of the vector v c rotation angle theta, the prediction image of the block 11 is generated.
  • affine transformation is performed on a reference image based on one motion vector and a rotation angle.
  • a predicted image in which the translation between the screens and the movement in the rotation direction are compensated is generated. Therefore, the accuracy of the predicted image is improved as compared with the two-parameter MC prediction process.
  • the parameters used for the inter prediction processing are three: v cx , v cy , and ⁇ .
  • FIG. 3 is a diagram illustrating an inter prediction process (hereinafter, referred to as a 4-parameter affine MC prediction process) that performs motion compensation based on two motion vectors.
  • the motion vector v 0 (v 0x , v 0y ) at the upper left vertex K1 and the motion at the upper right vertex K2 of the block 31 to be predicted are calculated.
  • the vector v 1 (v 1x , v 1y ) is determined.
  • the Motion compensation is performed by affine-transforming the block 32 having the upper right vertex based on the motion vector v 0 and the motion vector v 1, and a predicted image of the block 31 is generated.
  • the block 31 is divided into blocks of a predetermined size (hereinafter, referred to as unit blocks). Then, the motion vector v (v x , v y ) of each unit block is calculated based on the motion vector v 0 (v 0x , v 0y ) and the motion vector v 1 (v 1x , v 1y ) according to the following equation (1). ) And Equation (2).
  • the motion vector v of the unit block is determined based on the position of the unit block.
  • a predicted image of each unit block is generated by translating, based on the motion vector v, a block having the same size as a unit block separated by a motion vector v from each unit block in the reference image.
  • the predicted image of the block 31 is generated by the predicted image of each unit block.
  • affine transformation is performed on a reference image based on two motion vectors.
  • a predicted image is generated in which not only translational movement and rotational movement between screens but also a change in shape such as enlargement or reduction is compensated. Therefore, the accuracy of the predicted image is improved as compared with the inter prediction process of performing motion compensation based on one motion vector and the rotation angle.
  • the parameters used for the inter prediction process are four, v 0x , v 0y , v 1x , and v 1y .
  • Such inter prediction processing is employed in JEM (Joint Exploration Model) reference software.
  • the affine transformation based on the two motion vectors is an affine transformation on the assumption that blocks before and after the affine transformation are rectangular. In order to perform affine transformation even when blocks before and after affine transformation are squares other than rectangles, three motion vectors are required.
  • FIG. 4 is a diagram illustrating an inter prediction process (hereinafter, referred to as a 6-parameter affine MC prediction process) that performs motion compensation based on three motion vectors.
  • the Motion compensation is performed by performing an affine transformation based on the motion vectors v 0 to v 2 for the block 42 having the upper left vertex and a point K 3 ′ separated from the vertex K 3 by the motion vector v 2 as the lower left vertex. 31 predicted images are generated.
  • FIG. 5A to 5D are diagrams for explaining blocks before and after affine transformation based on three motion vectors. Due to the affine transformation, the block 42 is translated as shown in FIG. 5A, skewed as shown in FIG. 5B, rotated as shown in FIG. 5C, or rotated as shown in FIG. 5D. It is enlarged or reduced (Scaling) as shown.
  • the four-parameter affine MC prediction process there are four parameters in the inter prediction process: v 0x , v 0y , v 1x , and v 1y .
  • the parameters used in the inter prediction process are six, v 0x , v 0y , v 1x , v 1y , v 2x , and v 2y . Therefore, the number of parameters used in the inter prediction process increases as compared with the two-parameter MC prediction process. Therefore, there is a trade-off between improving the prediction accuracy of the inter prediction process and suppressing the overhead.
  • JVET a technique for switching between a 4-parameter affine MC prediction process and a 6-parameter affine MC prediction process according to a control signal has been proposed.
  • a macroblock is a block having a uniform size of 16 ⁇ 16 pixels.
  • the encoding process is executed in a processing unit (encoding unit) called a CU.
  • the CU is a block having a variable size and formed by recursively dividing an LCU (Largest Coding Unit), which is a maximum coding unit.
  • the maximum size of the selectable CU is 64x64 pixels.
  • the minimum size of a selectable CU is 8x8 pixels.
  • the CU having the minimum size is called an SCU (Smallest Coding Unit).
  • SCU Smallest Coding Unit
  • the maximum size of the CU is not limited to 64 ⁇ 64 pixels, and may be a larger block size such as 128 ⁇ 128 pixels or 256 ⁇ 256 pixels.
  • HEVC can adaptively adjust image quality and coding efficiency according to the content of an image.
  • the prediction process for predictive coding is executed in a processing unit called PU.
  • a PU is formed by dividing a CU by one of several division patterns.
  • the PU is composed of a processing unit called PB (PredictiondBlock) for each of the luminance (Y) and the color difference (Cb, Cr).
  • PB PredictiondBlock
  • the orthogonal transformation processing is executed in a processing unit called TU (Transform @ Unit).
  • a TU is formed by dividing a CU or PU to a certain depth.
  • the TU includes a processing unit (transform block) called TB (Transform @ Block) for each of the luminance (Y) and the color difference (Cb, Cr).
  • blocks as partial regions or processing units of an image (picture) (not blocks of the processing unit).
  • the “block” in this case indicates an arbitrary partial area in the picture, and its size, shape, characteristics, and the like are not limited. That is, the “block” in this case includes an arbitrary partial area (processing unit) such as a TB, TU, PB, PU, SCU, CU, LCU (CTB), subblock, macroblock, tile, or slice. Shall be included.
  • FIG. 6 is a diagram illustrating a QTBT (Quad tree plus binary tree) adopted in JVET.
  • FIG. 7 to FIG. 10 are diagrams for explaining the motion that occurs in each block in the image.
  • the image 64 has an area 64A where translation and scaling have occurred with the reference image, an area 64B where translation and rotation movement have occurred, translation, scaling, And an area 64C in which movement in the rotation direction has occurred, and an area 64D in which only translation has occurred.
  • the 4-parameter affine MC prediction processing is performed, and the translation between the screens, the movement in the rotation direction, and It is not necessary to compensate for all of the scaling. Therefore, performing the 4-parameter affine MC prediction process in the inter prediction process of all blocks wastefully increases (the code amount of) overhead and deteriorates the coding efficiency.
  • a translation mode for performing a two-parameter MC prediction process a translation rotation mode, a translation scaling mode, and an affine transformation mode for performing a four-parameter affine MC prediction process are prepared as motion compensation modes. Then, the image processing apparatus performs motion compensation in an appropriate motion compensation mode in the inter prediction process of each block.
  • the translation and rotation mode one motion vector v c (v cx, v cy ) and by performing the rotation and translation based on the three parameters of the rotation angle information indicating a rotational angle, translation and rotation direction Is a mode for compensating for the movement of Translation and scaling mode, one motion vector v c (v cx, v cy ) and by performing the translation and scaling based on the three parameters of the scaling information indicating a scaling factor, the mode to compensate for the translational movement and scaling It is.
  • the image processing apparatus performs motion compensation in the translation rotation mode in the inter prediction processing of the block in which the translation and the movement in the rotation direction have occurred. Further, the image processing apparatus performs motion compensation in a translation scaling mode in the inter prediction processing of a block in which translation and scaling have occurred.
  • the number of parameters used in the inter prediction processing on these blocks becomes three, which is smaller than that in the four parameter affine MC prediction processing. Therefore, overhead is reduced and coding efficiency is improved as compared with the case where the 4-parameter affine MC prediction process is performed on all blocks.
  • the affine transformation mode is a mode for performing a 4-parameter affine MC prediction process.
  • the affine transformation mode may be a mode for performing a 6-parameter affine MC prediction process.
  • the motion compensation mode includes a merge mode in addition to a normal motion compensation mode.
  • the merge mode is a motion compensation mode in which an inter prediction process is performed based on motion information (motion parameter) generated based on motion information (motion parameter) of an encoded block.
  • motion information for affine transformation is set in a coded block, using the merge mode has too many prediction components (for example, translation, rotation, and scaling components), and conversely, a highly accurate predicted image May not be generated.
  • the motion information of the encoded block to be referred to is four parameters of the affine transformation mode.
  • the motion information of the block to be processed also has the four parameters in the affine transformation mode, but the correct motion model of the block to be processed is not always in the affine transformation mode.
  • the correct motion model of the block to be processed is a translation rotation mode composed of translational and rotational predicted components, and a translation scaling mode composed of translational and scaling predicted components. In this case, the prediction accuracy of the motion parameter may be reduced.
  • the merge mode of the affine transformation includes the second and third merge modes (forced rotation mode) in which the prediction component is reduced to forcibly set the translation rotation mode or the translation scaling mode. , Forced scaling mode). Accordingly, even when the motion information of the encoded block to be referred to is the motion compensation mode of the affine transformation mode, a highly accurate predicted image can be generated.
  • FIG. 11 is a block diagram illustrating a configuration example of an image encoding device 100 that is an example of the image processing device according to the present disclosure.
  • the image coding device 100 in FIG. 11 is a device that codes a prediction residual between an image and its prediction image, such as AVC or HEVC.
  • the image encoding device 100 implements the HEVC technology and the technology proposed by JVET.
  • FIG. 11 shows main components such as the processing unit and the flow of data, and the components shown in FIG. 11 are not necessarily all. That is, in the image encoding device 100, a processing unit not illustrated as a block in FIG. 11 may exist, or a process or data flow not illustrated as an arrow or the like in FIG. 11 may exist.
  • the image coding apparatus 100 in FIG. 11 includes a control unit 101, a calculation unit 111, a conversion unit 112, a quantization unit 113, a coding unit 114, an inverse quantization unit 115, an inverse conversion unit 116, an operation unit 117, and a frame memory 118. , And a prediction unit 119.
  • the image encoding device 100 encodes a picture, which is an input frame-based moving image, for each block (for example, CU).
  • control unit 101 (setting unit) of the image encoding device 100 encodes encoding parameters (header information Hinfo, prediction information Pinfo, conversion information) based on an external input, RDO (Rate-Distortion Optimization), and the like.
  • Information Tinfo Information
  • the header information Hinfo includes, for example, a video parameter set (VPS (Video Parameter Set)), a sequence parameter set (SPS (Sequence Parameter Set)), a picture parameter set (PPS (Picture Parameter Set)), a slice header (SH), and the like.
  • a video parameter set VPS (Video Parameter Set)
  • SPS Sequence Parameter Set
  • PPS Picture Parameter Set
  • SH slice header
  • the header information Hinfo includes information specifying an image size (width PicWidth, height PicHeight), bit depth (luminance bitDepthY, color difference bitDepthC), a maximum CU size MaxCUSize / minimum value MinCUSize, and the like.
  • the content of the header information Hinfo is arbitrary, and any information other than the example described above may be included in the header information Hinfo.
  • the prediction information Pinfo includes, for example, a split flag indicating whether or not there is horizontal or vertical division in each division hierarchy when a block (for example, CU or PU) is formed.
  • the prediction information Pinfo includes, for each block, mode information pred_mode_flag indicating whether the prediction process of the block is an intra prediction process or an inter prediction process.
  • the prediction information Pinfo includes Merge flag, motion compensation mode information, parameter information, reference image specifying information for specifying a reference image, and the like.
  • Merge flag is information indicating whether the mode of the inter prediction process is the merge mode or the AMVP mode.
  • the merge mode is a parameter generated based on parameters (motion vector, rotation angle information, scaling information) used for motion compensation of an encoded block (for example, a peripheral block such as an adjacent block) to be merged. This is a mode in which inter prediction processing is performed based on prediction parameters selected from candidates including (hereinafter, referred to as target parameters).
  • the AMVP mode is a mode in which inter prediction processing is performed based on parameters of a processing target block.
  • Merge @ flag is 1 when indicating the merge mode, and is 0 when indicating the AMVP mode.
  • the motion compensation mode information is information indicating that the motion compensation mode is a translation mode, an affine transformation mode, a translation rotation mode, or a translation scaling mode.
  • the affine transformation mode of the merge mode is divided into a normal affine transformation mode, a translation rotation mode, and a translation scaling mode.
  • the parameter information is information that specifies, when the Merge flag is 1, a parameter used for the inter prediction process from among the candidates including the target parameter as a prediction parameter (prediction vector, prediction rotation angle information, prediction scaling information).
  • Merge flag When Merge flag is 0, it is information for specifying a prediction parameter, and a difference between the prediction parameter and a parameter of a processing target block.
  • the prediction information Pinfo includes intra prediction mode information indicating the intra prediction mode that is the mode of the intra prediction processing.
  • intra prediction mode information indicating the intra prediction mode that is the mode of the intra prediction processing.
  • the content of the prediction information Pinfo is arbitrary, and any information other than the example described above may be included in the prediction information Pinfo.
  • the conversion information Tinfo includes a TBSize indicating the size of the TB.
  • TBSize indicating the size of the TB.
  • the content of the conversion information Tinfo is arbitrary, and any information other than the example described above may be included in the conversion information Tinfo.
  • the arithmetic unit 111 sequentially sets the input pictures as encoding target pictures, and sets encoding target blocks (CU, PU, TU) for the encoding target picture based on split flag of the prediction information Pinfo. I do.
  • the calculation unit 111 obtains a prediction residual D by subtracting the prediction image P (prediction block) of the block supplied from the prediction unit 119 from the image I (current block) of the encoding target block, and obtains the prediction residual D. 112.
  • the conversion unit 112 performs orthogonal transformation or the like on the prediction residual D supplied from the calculation unit 111 based on the conversion information Tinfo supplied from the control unit 101, and derives a conversion coefficient Coeff.
  • the transform unit 112 supplies the transform coefficient Coeff to the quantization unit 113.
  • the quantization unit 113 scales (quantizes) the transform coefficient Coeff supplied from the transform unit 112 based on the transform information Tinfo supplied from the control unit 101, and derives a quantized transform coefficient level level.
  • the quantization unit 113 supplies the quantized transform coefficient level “level” to the encoding unit 114 and the inverse quantization unit 115.
  • the encoding unit 114 encodes the quantized transform coefficient level supplied from the quantization unit 113 by a predetermined method. For example, the encoding unit 114 supplies the encoding parameters (header information Hinfo, prediction information Pinfo, conversion information Tinfo, and the like) supplied from the control unit 101 and the quantization unit 113 according to the definition of the syntax table. Is converted into a syntax value of each syntax element. Then, the encoding unit 114 encodes each syntax value (for example, arithmetic encoding such as CABAC (Context-based Adaptive Binary Arithmetic Coding)).
  • CABAC Context-based Adaptive Binary Arithmetic Coding
  • the coding unit 114 switches the context of the CABAC probability model based on the motion compensation mode information of the merge target block (for example, a neighboring block such as an adjacent block), and the probability of the motion compensation mode information of the merge target block is changed.
  • a CABAC probability model is set to be higher, and the motion compensation mode information of the block is encoded.
  • an area 64A where translation and scaling occur with respect to the reference image an area 64B where translation and movement in the rotation direction occur, translation, scaling and rotation. It is presumed that the region 64C in which the movement in the direction has occurred and the region 64D in which only the translation has occurred exist in the image 64 collectively. Therefore, there is a high possibility that the motion compensation mode information of a certain block and the block to be merged are the same.
  • the block when a merge target block of a certain block exists in the area 64A and the translation scaling mode is selected as the motion compensation mode, the block also exists in the area 64A and the translation scaling mode is selected as the motion compensation mode. Likely. Further, when a block to be merged of a certain block exists in the region 64B and the translation rotation mode is selected as the motion compensation mode, the block also exists in the region 64B and the rotation scaling mode is selected as the motion compensation mode. Likely.
  • the block when a block to be merged of a certain block exists in the region 64C and the affine transformation mode is selected as the motion compensation mode, the block also exists in the region 64C and the affine transformation mode is selected as the motion compensation mode. Likely. Further, when a merge target block of a certain block exists in the region 64D and the translation mode is selected as the motion compensation mode, the block also exists in the region 64D and the translation mode can be selected as the motion compensation mode. High.
  • the encoding unit 114 sets the CABAC probability model and encodes the motion compensation mode information of the block so that the probability of the motion compensation mode information of the block to be merged is increased. Thereby, overhead can be reduced and coding efficiency can be improved.
  • the coding unit 114 may set a CABAC probability model based on the number of motion compensation mode information of blocks to be merged. Also, the encoding unit 114 may switch the code (bit string) to be assigned to the motion compensation mode information, instead of switching the context of the CABAC probability model based on the motion compensation mode information.
  • the encoding unit 114 multiplexes, for example, encoded data that is a bit string of each syntax element obtained as a result of encoding, and outputs the multiplexed data as an encoded stream.
  • the inverse quantization unit 115 performs scaling (inverse quantization) on the value of the quantized transform coefficient level supplied from the quantization unit 113 based on the conversion information Tinfo supplied from the control unit 101, and performs the inverse quantization. Of the conversion coefficient Coeff_IQ.
  • the inverse quantization unit 115 supplies the transform coefficient Coeff_IQ to the inverse transform unit 116.
  • the inverse quantization performed by the inverse quantization unit 115 is an inverse process of the quantization performed by the quantization unit 113, and is the same process as the inverse quantization performed in the image decoding device described later.
  • the inverse transform unit 116 performs an inverse orthogonal transform or the like on the transform coefficient Coeff_IQ supplied from the inverse quantization unit 115 based on the transform information Tinfo supplied from the control unit 101, and derives a prediction residual D ′. .
  • the inverse transform unit 116 supplies the prediction residual D ′ to the calculation unit 117.
  • the inverse orthogonal transform performed by the inverse transform unit 116 is an inverse process of the orthogonal transform performed by the transform unit 112, and is the same process as the inverse orthogonal transform performed by the image decoding device described later.
  • the arithmetic unit 117 adds the prediction residual D ′ supplied from the inverse transform unit 116 and the prediction image P corresponding to the prediction residual D ′ supplied from the prediction unit 119, and adds a locally decoded image. Derive Rec.
  • the operation unit 117 supplies the local decoded image Rec to the frame memory 118.
  • the frame memory 118 reconstructs a decoded image for each picture using the local decoded image Rec supplied from the arithmetic unit 117, and stores the reconstructed image in a buffer in the frame memory 118.
  • the frame memory 118 reads the decoded image specified by the prediction unit 119 from the buffer as a reference image, and supplies the reference image to the prediction unit 119. Further, the frame memory 118 may store header information Hinfo, prediction information Pinfo, conversion information Tinfo, and the like related to generation of a decoded image in a buffer in the frame memory 118.
  • the prediction unit 119 includes an intra prediction unit 119a, a motion compensation unit 119b, and a motion detection unit 119c.
  • the intra prediction unit 119a operates when the mode information pred_mode_flag of the prediction information Pinfo indicates an intra prediction process.
  • the intra prediction unit 119a acquires a decoded image stored in the frame memory 118 at the same time as the encoding target CU as a reference image. Then, the prediction unit 119 performs the intra prediction process of the intra prediction mode indicated by the intra prediction mode information on the coding target block using the reference image.
  • the motion compensator 119b and the motion detector 119c operate when the mode information pred_mode_flag indicates the inter prediction process.
  • the motion compensation unit 119b and the motion detection unit 119c acquire a decoded image at a time different from that of the encoding target CU stored in the frame memory 118 as a reference image based on the reference image specifying information.
  • the motion compensating unit 119b and the motion detecting unit 119c perform inter prediction processing on a block to be encoded using a reference image based on Merge flag, motion compensation mode information, and parameter information.
  • the motion compensation unit 119b and the motion detection unit 119c perform translational compensation on the reference image based on one motion vector.
  • the mode inter prediction processing is performed.
  • Merge flag is 1, one motion vector used for the inter prediction process is one prediction vector specified by the parameter information.
  • Merge flag is 0, one motion vector used for the inter prediction process is one motion vector obtained by adding one prediction vector specified by the parameter information and a difference included in the parameter information.
  • Vector is one motion vector used for the inter prediction process.
  • the motion compensation unit 119b and the motion detection unit 119c perform the translation and rotation directions by performing affine transformation based on two motion vectors on the reference image. , And scaling, and performs the inter prediction processing in the affine transformation mode.
  • Merge flag is 1
  • the two motion vectors used for the inter prediction process are two prediction vectors specified by the parameter information.
  • the two motion vectors used for the inter prediction process include two prediction vectors specified by the parameter information and a difference included in the parameter information corresponding to each prediction vector. These are two motion vectors obtained by adding.
  • the motion compensation unit 119b and the motion detection unit 119c perform the translation and the rotation in the rotation direction with respect to the reference image based on one motion vector and the rotation angle information.
  • the motion compensation unit 119b and the motion detection unit 119c perform the translation and the rotation in the rotation direction with respect to the reference image based on one motion vector and the rotation angle information.
  • Merge flag is 1 one motion vector and rotation angle information used in the inter prediction processing are a prediction vector and prediction rotation angle information specified by parameter information.
  • one motion vector used for the inter prediction process is one motion vector obtained by adding one prediction vector specified by the parameter information and a difference included in the parameter information.
  • the rotation angle information is one piece of rotation angle information obtained by adding the predicted rotation angle information specified by the parameter information and the difference included in the parameter information.
  • the motion compensation unit 119b and the motion detection unit 119c perform translation and scaling compensation on the reference image based on one motion vector and scaling information. , Perform an inter prediction process in a translation scaling mode.
  • Merge flag is 1, one motion vector and scaling information used for inter prediction processing are a prediction vector and prediction scaling information specified by parameter information.
  • one motion vector used for the inter prediction process is one motion vector obtained by adding one prediction vector specified by the parameter information and a difference included in the parameter information.
  • the scaling information is one piece of scaling information obtained by adding the prediction scaling information specified by the parameter information and a difference included in the parameter information.
  • the prediction unit 119 supplies the predicted image P generated as a result of the intra prediction process or the inter prediction process to the calculation unit 111 or the calculation unit 117.
  • FIG. 12 is a diagram illustrating the translation mode.
  • the prediction unit 119 performs the motion from the block 31 in the reference image based on the motion vector v 0 of the upper left vertex K1 of the block 31 to be processed.
  • the block 133 having the same size as the block 31 having the point K1 ′ separated by the vector v 0 as the upper left vertex is translated.
  • the prediction unit 119 sets the block 133 after the translation as the prediction image of the block 31.
  • two parameters v 0x and v 0y are used for the inter prediction process.
  • FIG. 13 is a diagram illustrating the translation rotation mode.
  • the prediction unit 119 refers to the motion vector v 0 of the vertex K1 of the block 31 to be processed and the rotation angle ⁇ as the rotation angle information.
  • the prediction unit 119 sets the block 134 after the translation and rotation as the prediction image of the block 31.
  • the parameters used for the inter prediction process are three: v 0x , v 0y , and ⁇ .
  • the rotation angle information but as the rotation angle theta, as shown in FIG. 14, as the difference dv y in the vertical direction of the motion vector v 1 of the motion vector v 0 and the vertex K2 vertex K1 Is also good. That is, when ⁇ is small, Wsin ⁇ can be approximated by the difference dv y , so that the rotation angle ⁇ may be replaced with the difference dv y . In this case, it is not necessary to calculate a trigonometric function at the time of motion compensation, and the amount of calculation at the time of motion compensation can be reduced.
  • FIG. 15 is a diagram illustrating the translation scaling mode.
  • the prediction unit 119 determines the reference image based on the motion vector v 0 of the vertex K1 of the block 31 to be processed and the scaling ratio S as scaling information.
  • the size of the block 135 is S times larger than that of the block 31.
  • the prediction unit 119 sets the block 135 after the translation and scaling as the prediction image of the block 31.
  • the parameters used for the inter prediction process are three: v 0x , v 0y , and S.
  • the scaling ratio S is represented by S 2 / S 1 when the size W of the block 31 is S 1 and the size of the block 135 in the x direction is S 2 . Since the size S 1 is known, the size S 2 can be obtained from the size S 1 using the scaling ratio S.
  • the scaling information in the example of FIG. 15, the scaling information, but the scaling rate S, as shown in FIG. 16, even motion vectors v 0 and the horizontal direction of the difference motion vector v 1 of the vertices K2 dv x vertex K1 Good. That is, the size S 2 may be approximated by S 1 + dv x. In this case, it is possible to determine the lateral size S 2 of the block 135 in only the addition of the size S 1 and differential dv x, it is possible to reduce the calculation amount at the time of motion compensation.
  • the scaling ratio S is (S 1 + dv x ) / S 1 .
  • FIG. 17 is a diagram for explaining motion compensation mode information (AMVP mode information) and parameter information in the AMVP mode.
  • AMVP mode information motion compensation mode information
  • the translation rotation mode may be simply referred to as “rotation mode”.
  • the translation scaling information may be simply referred to as “scaling mode”.
  • the motion compensation mode includes a translation mode, an affine transformation mode, a rotation mode, and a scaling mode.
  • the motion compensation mode information includes affine_flag, rotation_flag, and scaling_flag.
  • Affine_flag is information indicating whether the motion compensation mode is an affine transformation mode other than the normal translation mode, a scaling mode, or a rotation mode.
  • affine_flag is 1 when indicating that the motion compensation mode is an affine transformation mode, a rotation mode, or a scaling mode.
  • affine_flag is 0 when indicating that the motion compensation mode is not the affine transformation mode, the rotation mode, and the scaling mode, that is, when indicating that the motion compensation mode is the translation mode.
  • Rotation_flag is information indicating whether or not the motion compensation mode is the rotation mode, and is set when affine_flag is 1.
  • rotation_flag is set to 1 when the motion compensation mode is the rotation mode.
  • rotation_flag is set to 0 when the motion compensation mode is not the rotation mode, that is, when the motion compensation mode is the scaling mode or the affine transformation mode.
  • Scaling_flag is information indicating whether or not the motion compensation mode is the scaling mode, and is set when rotation_flag is 0.
  • scaling_flag is set to 1 when the motion compensation mode is the scaling mode, and is set to 0 when the motion compensation mode is not the scaling mode, that is, when the motion compensation mode is the affine transformation mode.
  • the motion compensation mode is the translation mode
  • information specifying a prediction vector corresponding to one motion vector of the processing target block is set as parameter information refidx0, and the difference between the one motion vector and the prediction vector is set. Is set as mvd0 of the parameter information.
  • the parameter information refidx0 and mvd0 are set as in the case of the translation mode.
  • information for specifying a prediction vector corresponding to another motion vector of the processing target block is set as refidx1 of parameter information, and a difference between the motion vector and the prediction vector is set as mvd1 of parameter information.
  • the parameter information refidx0 and mvd0 are set as in the case of the translation mode. Further, information for specifying prediction scaling information corresponding to the scaling information of the processing target block is set as refidx1 of the parameter information, and a difference between the scaling information and the prediction scaling information is set as ds of the parameter information.
  • ds is the difference dS between the scaling rate S of the processing target block and the scaling rate S as the prediction scaling information.
  • the scaling information indicates the difference dvx
  • ds is the difference mvd1.x between the difference dvx of the processing target block and the difference dvx as the prediction scaling information.
  • the parameter information refidx0 and mvd0 are set as in the case of the translation mode. Further, information for specifying predicted angle information corresponding to the angle information of the processing target block is set as refidx1, and the difference between the angle information and the predicted angle information is set as dr.
  • dr is the difference d ⁇ between the rotation angle ⁇ of the processing target block and the rotation angle ⁇ ′ as the predicted angle information.
  • dr is a difference mvd1.y between the difference dvy of the processing target block and the difference dvy as the predicted angle information.
  • FIG. 18 is a diagram illustrating motion compensation mode information (merge mode information) and parameter information in the merge mode.
  • the motion compensation mode includes a translation mode, an affine transformation mode, a rotation mode, and a scaling mode.
  • the affine transformation mode includes a rotation mode (hereinafter, also referred to as a forced rotation mode) and a scaling mode (hereinafter, also referred to as a forced scaling mode) in addition to a normal affine transformation mode.
  • the forced rotation mode is a motion compensation mode in which, out of a plurality of prediction components (translation, rotation, and scaling) in the affine transformation mode, the scaling prediction component is reduced and the rotation mode is forcibly set.
  • the forced scaling mode is a motion compensation mode in which, out of the plurality of prediction components (translation, rotation, and scaling) in the affine transformation mode, the scaling prediction component is reduced and the rotation mode is forcibly set.
  • the motion compensation mode information (merge mode information) is composed of affine_flag, rotation_flag, and scaling_flag.
  • Affine_flag is information indicating whether the motion compensation mode is an affine transformation mode other than the normal translation mode, a scaling mode, or a rotation mode.
  • affine_flag is 1 when indicating that the motion compensation mode is an affine transformation mode, a rotation mode, or a scaling mode.
  • affine_flag is 0 when indicating that the motion compensation mode is not the affine transformation mode, the rotation mode, and the scaling mode, that is, when indicating that the motion compensation mode is the translation mode.
  • Rotation_flag is information indicating whether the motion compensation mode is the rotation mode or the forced rotation mode, and is set when affine_flag is 1.
  • rotation_flag is set to 1 when the motion compensation mode is the rotation mode or the forced rotation mode.
  • rotation_flag is set to 0 when the motion compensation mode is not the rotation mode or the forced rotation mode, that is, when the motion compensation mode is the scaling mode, the forced scaling mode, or the normal affine transformation mode.
  • Scaling_flag is information indicating whether the motion compensation mode is a scaling mode or a forced scaling mode, and is set when rotation_flag is 0.
  • scaling_flag is set to 1 when the motion compensation mode is the scaling mode or the forced scaling mode, and when the motion compensation mode is not the scaling mode and the forced scaling mode, that is, when the motion compensation mode is the normal affine transformation mode , The rotation mode, and the forced rotation mode, are set to 0.
  • mvd0, mvd1, ds, and dr are not set as the parameter information, and refidx0 and refidx1 are set in the same manner as in the AMVP mode.
  • FIG. 19 is a diagram illustrating a motion vector (hereinafter, referred to as a candidate vector) included in a target parameter that is a candidate for a prediction vector.
  • the prediction unit 119 converts a candidate vector that is a candidate for the prediction vector pv 0 of the motion vector v 0 of the upper left vertex K1 of the block 151 to be predicted in FIG. 19 into the upper left corner of the block 151 having the vertex K1 as the vertex. Is generated on the basis of the motion vector of the block a that is the block above, the block b that is the upper coded block, or the block c that is the left coded block.
  • the prediction unit 119 the candidate vectors, which are candidates of the prediction vector pv 1 motion vector v 1 of the upper right apex K2 block 151 is the upper coded block of the block 151 whose vertices vertices K2 It is generated based on the motion vector of the block d or the block e which is a coded block on the upper right side.
  • the motion vectors of the blocks a to e are one motion vector for each block held in the prediction unit 119.
  • the prediction unit 119 uses the combination that minimizes the DV obtained by the following equation (3) among the six combinations of candidates in generating candidate vectors that are candidates for the prediction vectors pv 0 and pv 1. Select as a combination of motion vectors.
  • v 0x ′ and v 0y ′ are motion vectors in the x and y directions of any of the blocks a to c used for generating the prediction vector pv 0 .
  • v 1x ′ and v 1y ′ are motion vectors in either the x direction or the y direction of the blocks d and e used for generating the prediction vector pv 1 .
  • v 2x ′ and v 2y ′ are any of the coded block f on the left side of the block 151 having the vertex K3 of the block 151 as the vertex and the coded block g on the lower left side of the block 151.
  • the motion vectors of the blocks f and g are one motion vector stored in the prediction unit 119 for each block.
  • the affine transformation based on the motion vectors v 0 ′ (v 0x ′, v 0y ′) to v 2 ′ (v 2x ′, v 2y ′) provides If something other than an impossible skew is performed, the DV will be small.
  • FIG. 20 is a flowchart illustrating an image encoding process performed by the image encoding device 100.
  • the control unit 101 sets coding parameters (header information Hinfo, prediction information Pinfo, conversion information Tinfo, and the like) based on an external input, RDO, and the like (step S11).
  • the control unit 101 supplies the set encoding parameters to each block.
  • the control unit 101 functions as a setting unit of the image encoding device 100.
  • the prediction unit 119 determines whether the current slice is an I-SLICE (step S12). In the case of I-SLICE (step S12: Yes), the prediction unit 119 proceeds to step S15. The prediction unit 119 determines whether the current slice is an I-SLICE (step S12). When the current mode is not the I-SLICE (step S12: No), the prediction unit 119 determines whether the current mode is the skip mode (step S13). In the case of the skip mode (step S13: Yes), the prediction unit 119 proceeds to step S18.
  • the prediction unit 119 determines whether the current mode is the inter mode (step S14). For example, the prediction unit 119 determines whether or not the mode information pred_mode_flag of the prediction information Pinfo indicates an inter prediction process. When the mode is not the inter mode (Step S14: No), the intra prediction unit 119a of the prediction unit 119 executes an intra encoding process (Step S15).
  • the prediction unit 119 determines whether or not the Merge $ flag of the prediction information Pinfo is 1 (Step S16). When Merge @ flag is not 1 (step S16: No), the prediction unit 119 performs an AMVP mode encoding process (step S17).
  • the AMVP mode encoding process is a process of encoding an image to be encoded using the predicted image P generated by the inter prediction process in the AMVP mode. The AMVP mode encoding processing will be described later. After the end of the AMVP mode encoding process, the image encoding process ends.
  • the prediction unit 119 determines whether or not affine_flag is 1 (step S18). When affine_flag is not 1 (Step S18: No), the prediction unit 119 performs a translation mode encoding process (Step S19).
  • the translation mode encoding process is a type of the inter encoding process, and is a process of encoding an encoding target image using the predicted image P generated by the translation mode inter prediction process. The translation mode encoding process will be described later in the description of the inter encoding process. After the end of the translation mode encoding process, the image encoding process ends.
  • the prediction unit 119 determines whether rotation_flag is 1 (step S20). When rotation_flag is 1 (Step S20: Yes), the prediction unit 119 performs a rotation mode encoding process (Step S21).
  • the rotation mode encoding process is a type of the inter encoding process, and is a process of encoding an image to be encoded using the predicted image P generated by the inter prediction process in the rotation mode or the forced rotation mode. The rotation mode encoding process will be described later in the description of the inter encoding process. After the end of the rotation mode encoding process, the image encoding process ends.
  • Step S20 When rotation_flag is not 1 (Step S20: No), the prediction unit 119 determines whether or not scaling_flag is 1 (Step S22). When scaling_flag is 1 (Step S22: Yes), the prediction unit 119 performs a rotation mode encoding process (Step S23).
  • the scaling mode encoding process is a type of the inter encoding process, and is a process of encoding an image to be encoded using the predicted image P generated by the inter prediction process in the scaling mode or the forced scaling mode. The scaling mode encoding process will be described later in the description of the inter encoding process. After the end of the scaling mode encoding process, the image encoding process ends.
  • the prediction unit 119 performs the normal affine transformation mode encoding process (Step S24).
  • the normal affine transformation mode encoding process is a type of inter encoding process, and is a process of encoding an image to be encoded using the predicted image P generated by the normal affine transformation mode inter prediction process.
  • the normal affine transformation mode encoding process will be described later in the description of the inter encoding process. After the end of the normal affine transformation mode encoding process, the image encoding process ends.
  • FIG. 21 is a flowchart illustrating a setting process of setting the Merge @ flag and the motion compensation mode information in the process of step S11 in FIG.
  • This setting process is a process for setting the inter prediction processing mode, and is executed, for example, in block units (PU units or CU units).
  • the affine transformation mode of the AMVP mode is referred to as a normal affine transformation mode.
  • the control unit 101 sets a mode (translation mode, normal affine transformation mode, rotation mode, forced rotation mode, scaling mode, or forced scaling mode) that has not been set as the motion compensation mode yet (step S31). .
  • the control unit 101 sets affine_flag to 0. If the normal affine transformation mode is not yet set as the motion compensation mode, the control unit 101 sets affine_flag to 1 and sets rotation_flag and scaling_flag to 0. When the rotation mode and the forced rotation mode are not set as the motion compensation modes, the affine_flag and the rotation_flag are set to 1 and the scaling_flag is set to 0. When the scaling mode and the forced scaling mode are not set as the motion compensation mode, the affine_flag and the scaling_flag are set to 1 and the rotation_flag is set to 0.
  • the control unit 101 controls each block and performs, for a block (PU or CU) to be processed, a center encoding process (merge mode code) for each prediction information Pinfo other than candidate Merge flag and motion compensation mode information.
  • RD cost is calculated (step S32). The calculation of the RD cost is performed based on the amount of generated bits (code amount) obtained as a result of encoding, SSE (Error (Sum of Squares) of the decoded image, and the like.
  • the control unit 101 determines whether all the motion compensation modes have been set in step S31 (step S33). If all the motion compensation modes have not been selected (step S33: No), the control unit 101 returns the process to step S31.
  • Step S34 the control unit 101 determines whether the RD cost in any of the normal affine transformation mode, the rotation mode, the forced rotation mode, the scaling mode, and the forced scaling mode is minimum.
  • Step S34: No If the RD cost in the merge mode is not the minimum (Step S34: No), the control unit 101 sets Merge $ flag of the processing target block to 0 (Step S35), and proceeds to Step S37. On the other hand, when the RD cost in the merge mode is the minimum (step S34: Yes), the control unit 101 sets Merge @ flag of the processing target block to 1 (step S36), and proceeds to step S37.
  • step S37 determines whether the RD cost in the translation mode is minimum. If the RD cost in the translation mode is the minimum (step S37: No), the affine_flag of the processing target block is set to 0 (step S39), and the setting process ends. On the other hand, when the RD cost in the translation mode is not the minimum (step S37: Yes), the control unit 101 sets the affine_flag of the processing target block to 1 (step S36), and proceeds to step S40.
  • step S40 determines whether the RD cost in the rotation mode (or the forced rotation mode) is minimum (step S40). If the RD cost in the rotation mode (or the forced rotation mode) is the minimum (step S40: No), the rotation_flag of the processing target block is set to 0 (step S41), and the setting process ends. On the other hand, when the RD cost in the rotation mode (or the forced rotation mode) is not the minimum (step S42: Yes), the control unit 101 sets the rotation_flag of the processing target block to 1 (step S42), and proceeds to step S43. Advance.
  • the control unit 101 determines whether the RD cost in the scaling mode (or the forced scaling mode) is minimum (step S43). If the RD cost in the scaling mode (or the forced scaling mode) is the minimum (step S43: No), the scaling_flag of the processing target block is set to 0 (step S44), and the setting process ends. On the other hand, if the RD cost in the scaling mode (or the forced scaling mode) is not the minimum (step S43: Yes), the control unit 101 sets scaling_flag of the processing target block to 1 (step S45), and ends the setting process. I do.
  • FIG. 22 is a flowchart illustrating the inter encoding process.
  • the merge mode encoding process and the AMVP encoding process are one type of the inter encoding process. This inter-coding process is performed in block units (for example, in CU units or PU units).
  • the motion information determination process is a process for determining motion information to be set for a processing target block.
  • the prediction unit 119 determines a prediction vector pv 0. Specifically, when the parameter information is information for specifying a candidate vector as a prediction vector, the prediction unit 119 determines, based on the motion vectors of the blocks a to g shown in FIG. the candidate vectors generated from one of the motion vector is used to determine the predicted vector pv 0.
  • the prediction unit 119 In the case Merge flag is 0, further, the prediction unit 119, the one prediction vector pv 0, the difference dv 0 of the motion vector v 0 of the prediction vector pv 0 and the processing target block among the parameter information To calculate the motion vector v 0 of the processing target block.
  • the prediction unit 119 uses the two prediction vectors pv 0 and pv p based on the parameter information. Determine 1 Specifically, when the parameter information is information for specifying a candidate vector as a prediction vector, the prediction unit 119 determines, based on the motion vectors of the held blocks a to g, the blocks a to c having the smallest DV. And a combination of any of the motion vectors of the blocks d and e.
  • the prediction unit 119 determines a candidate vector generated using any of the motion vectors of the selected blocks a to c as the prediction vector pv 0 . Also, the prediction unit 119, a candidate vector generated using a motion vector of the block d, or e, which is selected to determine the prediction vector pv 1. Then, the prediction unit 119 calculates the motion vector v of each unit block by using the above-described equations (1) and (2), using the prediction vectors as the motion vectors v 0 and v 1 of the block to be processed.
  • the prediction unit 119 adds each of the two prediction vectors and the difference of the parameter information corresponding to the prediction vector, and calculates two motion vectors of the processing target block. calculate. Specifically, the prediction unit 119, a prediction vector pv 0, adds the difference dv 0 of the motion vector v 0 of the prediction vector pv 0 and the processing target block among the parameter information of the processing target block Calculate the motion vector v 0 . Also, the prediction unit 119, the prediction vector pv 1, the predicted vector pv 1 and adds the difference dv 1 of the motion vector v 1 of the block to be processed, the motion vector v of the block to be processed of the parameter information Calculate 1 . Then, the prediction unit 119 calculates the motion vector v of each unit block using the two motion vectors v0 and v1 according to the above equations (1) and (2).
  • the prediction unit 119 determines one prediction vector pv0 based on the parameter information. At the same time, the prediction angle information is determined. When Merge flag is 0, the prediction unit 119 further calculates one motion vector v0. The prediction unit 119 calculates the angle information of the processing target block by adding the prediction angle information and the difference between the prediction angle information of the parameter information and the angle information of the processing target block.
  • the prediction unit 119 determines one prediction vector pv 0 based on the parameter information. And predictive scaling information is determined. When the Merge flag is 0, the prediction unit 119 further calculates one motion vector v 0 . Further, the prediction unit 119 calculates scaling information of the processing target block by adding the prediction scaling information and a difference between the prediction scaling information of the parameter information and the scaling information of the processing target block.
  • the prediction unit 119 performs motion compensation (step S52).
  • the prediction unit 119 performs motion compensation on the reference image specified by the reference image specifying information stored in the frame memory 118 in the translation mode. I do.
  • the prediction unit 119 uses the prediction vector pv 0 as the motion vector v 0 of the processing target block.
  • the prediction unit 119 supplies the reference image on which the motion compensation has been performed to the calculation unit 111 and the calculation unit 117 as the prediction image P.
  • the prediction unit 119 When affine_flag is 1 and rotation_flag and scaling_flag are 0, that is, when the motion compensation mode is the normal affine transformation mode, the prediction unit 119 performs, for each unit block, the reference image identification information based on the motion vector v. The motion compensation is performed on the reference image in the affine transformation mode by translating the block of the reference image specified by. The prediction unit 119 supplies the reference image on which the motion compensation has been performed to the calculation unit 111 and the calculation unit 117 as the prediction image P.
  • the prediction unit 119 performs the motion compensation on the reference image in the rotation mode.
  • Merge flag is 1
  • the prediction unit 119 uses the prediction vector and the prediction angle information as the motion vector v0 and the angle information of the processing target PU.
  • the prediction unit 119 supplies the reference image on which the motion compensation has been performed to the calculation unit 111 and the calculation unit 117 as the prediction image P.
  • the prediction unit 119 performs motion compensation on the reference image in the scaling mode.
  • Merge flag is 1
  • the prediction unit 119 uses the prediction vector and the prediction scaling information as the motion vector v0 and the scaling information of the processing target block.
  • the prediction unit 119 supplies the reference image on which the motion compensation has been performed to the calculation unit 111 and the calculation unit 117 as the prediction image P.
  • the calculation unit 111 calculates a difference between the image I and the predicted image P as a prediction residual D, and supplies the prediction residual D to the conversion unit 112 (step S53).
  • the data amount of the prediction residual D thus obtained is reduced as compared with the original image I. Therefore, the data amount can be reduced as compared with the case where the image I is encoded as it is.
  • the conversion unit 112 performs orthogonal transformation or the like on the prediction residual D supplied from the calculation unit 111 based on the conversion information Tinfo supplied from the control unit 101 to derive a conversion coefficient Coeff (step S54).
  • the transform unit 112 supplies the transform coefficient Coeff to the quantization unit 113.
  • the quantization unit 113 scales (quantizes) the transform coefficient Coeff supplied from the transform unit 112 based on the transform information Tinfo supplied from the control unit 101, and derives a quantized transform coefficient level level (step S55). ).
  • the quantization unit 113 supplies the quantized transform coefficient level “level” to the encoding unit 114 and the inverse quantization unit 115.
  • the inverse quantization unit 115 inversely converts the quantized transform coefficient level supplied from the quantization unit 113 based on the transform information Tinfo supplied from the control unit 101 with a characteristic corresponding to the quantization characteristic in step S55. Quantization is performed (step S56). The inverse quantization unit 115 supplies the resulting transform coefficient Coeff_IQ to the inverse transform unit 116.
  • the inverse transform unit 116 performs an inverse orthogonal transform on the transform coefficient Coeff_IQ supplied from the inverse quantizer 115 based on the transform information Tinfo supplied from the control unit 101 by a method corresponding to the orthogonal transform or the like in step S54. And the like to derive a prediction residual D ′ (step S57).
  • the operation unit 117 generates a local decoded image Rec by adding the prediction residual D ′ derived in the process of step S57 to the prediction image P supplied from the prediction unit 119 (step S58).
  • the frame memory 118 reconstructs a decoded image in units of pictures using the local decoded image Rec obtained by the processing in step S58, and stores it in a buffer in the frame memory 118 (step S59).
  • the encoding unit 114 encodes the encoding parameter set by the process of step S11 of FIG. 20 and the quantized transform coefficient level obtained by the process of step S115 by a predetermined method (step S60).
  • the encoding unit 114 multiplexes the encoded data obtained as a result and outputs the multiplexed data to the outside of the image encoding device 100 as an encoded stream. This encoded stream is transmitted to the decoding side via a transmission path or a recording medium, for example.
  • step S60 When the process in step S60 ends, the inter encoding process ends.
  • FIG. 23 is a diagram illustrating a positional relationship between a current block and an encoded block serving as a reference candidate.
  • a block 31 is a block to be processed (current block)
  • blocks A to E are encoded blocks that are reference candidates.
  • the motion information of the block located near the current block is close to the motion information of the current block. Therefore, in the example of FIG. 23, all of the blocks that are reference candidates are adjacent blocks adjacent to the current block. Blocks in oblique directions are also adjacent blocks.
  • the reference candidate block is not limited to an adjacent block.
  • the block serving as a reference candidate may be a block at a position distant from the current block in the same frame.
  • the reference candidate block may be a block in another frame (for example, a block at the same position in the previous frame).
  • FIGS. 24 to 29 are diagrams showing the merge behavior.
  • the area to be merged is block A.
  • a scaling mode is set.
  • the block A refers to a block A 'having an area obtained by enlarging the block A.
  • motion information is set so as to refer to the block 135 enlarged according to the enlargement from the block A to the block A '.
  • Block C refers to block C 'which is an enlargement of block C.
  • motion information is set so as to refer to the block 135 enlarged in accordance with the enlargement from the block C to the block C '.
  • the area to be merged is block E.
  • a scaling mode is set.
  • the block E refers to a block E 'obtained by enlarging the block E.
  • motion information is set so as to refer to the block 135 enlarged in accordance with the enlargement from the block E to the block E '.
  • the area to be merged is block A.
  • a rotation mode is set.
  • the block A refers to the block A 'obtained by rotating the block A.
  • motion information is set so as to refer to the block 134 rotated according to the rotation from the block A to the block A '.
  • the area to be merged is block C.
  • a rotation mode is set.
  • the block C refers to a block C 'obtained by rotating the block C.
  • motion information is set so as to refer to the block 134 rotated according to the rotation from the block C to the block C '.
  • the area to be merged is block E.
  • a rotation mode is set.
  • the block E refers to a block E 'obtained by rotating the block E.
  • motion information is set so as to refer to the block 134 rotated according to the rotation from the block E to the block E '.
  • FIG. 30 is a flowchart illustrating the merge process.
  • the merge processing is an example of the motion information determination processing in the merge mode.
  • the blocks serving as reference candidates (merge candidates) are blocks A to E shown in FIG.
  • the prediction unit 119 determines whether or not the motion compensation mode set for the block A is the affine transformation mode (step S101). In the case of the affine transformation mode (step S101: Yes), the prediction unit 119 generates the motion information of the current block 31 based on the motion information of the block A (step S102). At this time, the prediction unit 119 generates the motion information in the mode having the lowest RD cost among the normal affine transformation mode, the forced rotation mode, and the forced scaling mode. After generating the motion information, the prediction unit 119 ends the merge processing.
  • the prediction unit 119 determines whether the motion compensation mode set for the block B is the affine transformation mode (step S103). In the case of the affine transformation mode (Step S103: Yes), the prediction unit 119 generates the motion information of the current block 31 based on the motion information of the block B (Step S104). At this time, the prediction unit 119 generates the motion information in the mode having the lowest RD cost among the normal affine transformation mode, the forced rotation mode, and the forced scaling mode. After generating the motion information, the prediction unit 119 ends the merge processing.
  • the prediction unit 119 determines whether the motion compensation mode set for the block C is the affine transformation mode (step S105). In the case of the affine transformation mode (Step S105: Yes), the prediction unit 119 generates the motion information of the current block 31 based on the motion information of the block C (Step S106). At this time, the prediction unit 119 generates the motion information in the mode having the lowest RD cost among the normal affine transformation mode, the forced rotation mode, and the forced scaling mode. After generating the motion information, the prediction unit 119 ends the merge processing.
  • the prediction unit 119 determines whether the motion compensation mode set for the block D is the affine transformation mode (step S107). In the case of the affine transformation mode (Step S107: Yes), the prediction unit 119 generates the motion information of the current block 31 based on the motion information of the block D (Step S108). At this time, the prediction unit 119 generates the motion information in the mode having the lowest RD cost among the normal affine transformation mode, the forced rotation mode, and the forced scaling mode. After generating the motion information, the prediction unit 119 ends the merge processing.
  • the prediction unit 119 determines whether the motion compensation mode set for the block E is the affine transformation mode (step S109). In the case of the affine transformation mode (Step S109: Yes), the prediction unit 119 generates the motion information of the current block 31 based on the motion information of the block E (Step S110). At this time, the prediction unit 119 generates the motion information in the mode having the lowest RD cost among the normal affine transformation mode, the forced rotation mode, and the forced scaling mode. After generating the motion information, the prediction unit 119 ends the merge processing.
  • the prediction unit 119 executes a normal merge mode (step S111). For example, the prediction unit 119 determines the motion information by the method described in the inter-encoding processing in FIG. After generating the motion information, the prediction unit 119 ends the merge processing.
  • the prediction unit 119 in the affine transformation mode of the merge mode, the prediction unit 119 generates the motion information in the mode having the lowest RD cost among the normal affine transformation mode, the forced rotation mode, and the forced scaling mode.
  • the normal affine transformation mode, forced rotation mode, and forced scaling mode will be described.
  • the normal affine transformation mode, the forced rotation mode, and the forced scaling mode are all modes in the merge mode.
  • the normal affine transformation mode is a motion compensation that acquires first type motion information generated based on first type motion information for affine transformation set to an encoded block as motion information of a current block.
  • the first type of motion information is motion information composed of a plurality of prediction components for affine transformation.
  • the first type of motion information is motion information having at least predicted components of translation, rotation, and scaling. More specifically, the first type of motion information is 4-parameter or 6-parameter motion information.
  • the forced rotation mode and the forced scaling mode are motion compensation modes in which a second type of motion information generated based on the first type of motion information set in the encoded block is obtained as motion information of the current block.
  • the second type of motion information is motion information having a different number of prediction components for affine transformation from the first type of motion information (for example, motion information having a small number of prediction components).
  • the second type of motion information is motion information composed of one or a plurality of prediction components obtained by removing at least one prediction component from a plurality of prediction components constituting the first type of motion information. If the first type of motion information has translation, rotation, and scaling prediction components, the second type of motion information includes at least one prediction component from the translation, rotation, and scaling prediction components. Excluded motion information.
  • the second type of motion information is motion information having a translational and scaling prediction component and not having a rotation prediction component.
  • the second type of motion information is motion information having a predicted component of translation and rotation and having no predicted component of scaling.
  • the second type of motion information can be paraphrased as the third type of motion information.
  • FIG. 31 is a diagram illustrating variables used for calculation at the time of merging.
  • the small block is the block to be merged, and the large block is the current block.
  • h X, w X is the height and width of the merged block.
  • h and w are the height and width of the current block.
  • p X0 is the upper left position of the blocks to be merged.
  • p 0 is the current upper left position.
  • v X0 , v X1 and v X2 are motion information of the corners of the blocks to be merged.
  • v 0 , v 1 and v 2 are motion information of the corners of the current block.
  • the derivation formula of the motion information used in the merging in the scaling mode is, for example, the following formulas (4) to (6). Accordingly, the prediction unit 119 can derive parameters so that the current block is a motion prediction for scaling.
  • the derivation formula of the motion information used in the merge in the rotation mode is, for example, the following formulas (7) to (9).
  • the prediction unit 119 can derive parameters so that the current block is a motion prediction of rotation.
  • FIG. 32 is a flowchart illustrating another example of the merge process.
  • the merge processing shown in FIG. 32 is an example of the merge processing assuming that the affine transformation mode or the rotation mode is set for the blocks A to E.
  • Steps S101 to S110 are the same as steps S101 to S110 in FIG. 30 and will not be described.
  • the prediction unit 119 determines whether the motion compensation mode set in the block A is the rotation mode (step S121). In the case of the rotation mode (Step S121: Yes), the prediction unit 119 generates the motion information of the current block 31 based on the motion information of the block A (Step S122).
  • Step S121 determines whether the motion compensation mode set in the block B is the rotation mode (Step S123). In the case of the rotation mode (Step S123: Yes), the prediction unit 119 generates the motion information of the current block 31 based on the motion information of the block B (Step S124).
  • the prediction unit 119 determines whether the motion compensation mode set in the block C is the rotation mode (step S125). In the case of the rotation mode (Step S125: Yes), the prediction unit 119 generates the motion information of the current block 31 based on the motion information of the block C (Step S126).
  • step S125 determines whether the motion compensation mode set in the block D is the rotation mode (step S127). In the case of the rotation mode (step S127: Yes), the prediction unit 119 generates the motion information of the current block 31 based on the motion information of the block D (step S128).
  • step S127 determines whether the motion compensation mode set in the block E is the rotation mode (step S129). In the case of the rotation mode (Step S129: Yes), the prediction unit 119 generates the motion information of the current block 31 based on the motion information of the block E (Step S130).
  • step S129 If the block E is not in the rotation mode (step S129: No), the prediction unit 119 executes a normal merge mode (step S111). After generating the motion information, the prediction unit 119 ends the merge processing.
  • FIG. 33 is a flowchart illustrating another example of the merge process.
  • the merge processing shown in FIG. 33 is an example of the merge processing assuming that the affine transformation mode or the scaling mode is set for the blocks A to E.
  • the blocks serving as reference candidates (merge candidates) are blocks A to E shown in FIG.
  • Steps S101 to S110 are the same as steps S101 to S110 in FIG. 30 and will not be described.
  • the prediction unit 119 determines whether the motion compensation mode set in the block A is the scaling mode (step S141). In the case of the scaling mode (step S141: Yes), the prediction unit 119 generates the motion information of the current block 31 based on the motion information of the block A (step S142).
  • the prediction unit 119 determines whether the motion compensation mode set in the block B is the rotation mode (step S143). In the case of the scaling mode (Step S143: Yes), the prediction unit 119 generates the motion information of the current block 31 based on the motion information of the block B (Step S144).
  • the prediction unit 119 determines whether the motion compensation mode set in the block C is the rotation mode (step S145). In the case of the scaling mode (Step S145: Yes), the prediction unit 119 generates the motion information of the current block 31 based on the motion information of the block C (Step S146).
  • the prediction unit 119 determines whether the motion compensation mode set in the block D is the rotation mode (step S147). In the case of the scaling mode (Step S127: Yes), the prediction unit 119 generates the motion information of the current block 31 based on the motion information of the block D (Step S148).
  • step S147: No the prediction unit 119 determines whether the motion compensation mode set in the block E is the rotation mode (step S149). In the case of the scaling mode (step S149: Yes), the prediction unit 119 generates the motion information of the current block 31 based on the motion information of the block E (step S150).
  • step S149 If the block E is not in the scaling mode (step S149: No), the prediction unit 119 executes a normal merge mode (step S111). After generating the motion information, the prediction unit 119 ends the merge processing.
  • the prediction mode is reduced and the translation rotation mode and the translation scaling mode are added to the affine transformation merge mode.
  • Second and third modes force rotation mode and forced scaling mode
  • the image coding apparatus 100 can generate a highly accurate predicted image even when the motion information of the coded block to be referred to is the motion compensation mode of the affine transformation mode.
  • FIG. 34 is a block diagram illustrating a configuration example of an image decoding device 200 that is an example of the image processing device according to the present disclosure.
  • the image decoding device 200 decodes the coded stream generated by the image coding device 100 in FIG. 11 by a decoding method corresponding to the coding method in the image coding device 100.
  • the image decoding device 200 implements the technology proposed by HEVC and the technology proposed by JVET.
  • FIG. 34 shows main components such as the processing unit and the flow of data, and the components shown in FIG. 34 are not necessarily all. That is, in the image decoding device 200, a processing unit not illustrated as a block in FIG. 34 may exist, or a process or data flow not illustrated as an arrow or the like in FIG. 34 may exist.
  • the image decoding device 200 in FIG. 34 includes a decoding unit 211, an inverse quantization unit 212, an inverse transformation unit 213, an operation unit 214, a frame memory 215, and a prediction unit 216.
  • the image encoding device 100 decodes the encoded stream generated by the image encoding device 100 for each block (for example, for each CU).
  • the decoding unit 211 of the image decoding device 200 decodes the encoded stream generated by the image encoding device 100 using a predetermined decoding method corresponding to the encoding method in the encoding unit 114.
  • the decoding unit 211 decodes a coding parameter (header information Hinfo, prediction information Pinfo, conversion information Tinfo, and the like) and a quantized transform coefficient level from the bit stream of the coded stream according to the definition of the syntax table.
  • decoding section 211 divides the LCU based on splitspflag included in the encoding parameter, and sequentially sets the CU corresponding to each quantized transform coefficient level as a decoding target block (CU, PU, TU). .
  • the decoding unit 211 sets these parameters in the image decoding device 200.
  • the decoding unit 211 functions as a setting unit of the image decoding device 200.
  • the decoding unit 211 supplies an encoding parameter to each block.
  • the decoding unit 211 supplies the prediction information Pinfo to the prediction unit 216, supplies the transform information Tinfo to the inverse quantization unit 212 and the inverse transform unit 213, and supplies the header information Hinfo to each block.
  • the decoding unit 211 supplies the quantized transform coefficient level level to the inverse quantization unit 212.
  • the inverse quantization unit 212 scales (dequantizes) the value of the quantized transform coefficient level supplied from the decoding unit 211 based on the transform information Tinfo supplied from the decoding unit 211, and derives a transform coefficient Coeff_IQ. I do.
  • This inverse quantization is an inverse process of the quantization performed by the quantization unit 113 (FIG. 11) of the image encoding device 100.
  • the inverse quantization unit 115 (FIG. 11) performs the same inverse quantization as the inverse quantization unit 212.
  • the inverse quantization unit 212 supplies the obtained transform coefficient Coeff_IQ to the inverse transform unit 213.
  • the inverse transform unit 213 performs an inverse orthogonal transform or the like on the transform coefficient Coeff_IQ supplied from the inverse quantization unit 212 based on the transform information Tinfo or the like supplied from the decoding unit 211 and derives a prediction residual D ′. I do.
  • the inverse orthogonal transform is an inverse process of the orthogonal transform performed by the transform unit 112 (FIG. 11) of the image encoding device 100. Note that the inverse transform unit 116 performs the same inverse orthogonal transform as the inverse transform unit 213.
  • the inverse transform unit 213 supplies the obtained prediction residual D ′ to the calculation unit 214.
  • the operation unit 214 adds the prediction residual D ′ supplied from the inverse transform unit 213 and the prediction image P corresponding to the prediction residual D ′, and derives a locally decoded image Rec.
  • the arithmetic unit 214 reconstructs a decoded image for each picture using the obtained local decoded image Rec, and outputs the obtained decoded image to the outside of the image decoding device 200.
  • the arithmetic unit 214 also supplies the local decoded image Rec to the frame memory 215.
  • the frame memory 215 reconstructs a decoded image for each picture using the local decoded image Rec supplied from the arithmetic unit 214, and stores the reconstructed image in a buffer in the frame memory 215.
  • the frame memory 215 reads the decoded image specified by the prediction unit 216 from the buffer as a reference image, and supplies the reference image to the prediction unit 216. Further, the frame memory 215 may store header information Hinfo, prediction information Pinfo, conversion information Tinfo, and the like related to generation of the decoded image in a buffer in the frame memory 215.
  • the prediction unit 216 acquires a decoded image at the same time as the encoding target CU stored in the frame memory 215 as a reference image. Then, the prediction unit 216 performs the intra prediction process of the intra prediction mode indicated by the intra prediction mode information on the coding target block using the reference image.
  • the prediction unit 216 determines a decoded image at a time different from that of the coding target block (for example, CU) stored in the frame memory 215 based on the reference image specifying information. Is obtained as a reference image.
  • the prediction unit 216 performs the inter prediction process on the block to be encoded using the reference image based on the Merge flag, the motion compensation mode information, and the parameter information, similarly to the prediction unit 119 in FIG.
  • the prediction unit 216 supplies the prediction image P generated as a result of the intra prediction process or the inter prediction process to the calculation unit 214.
  • FIG. 35 is a flowchart illustrating the image decoding process of the image decoding device 200.
  • the decoding unit 211 decodes the coded stream supplied to the image decoding device 200, and obtains a coding parameter and a quantized transform coefficient level (step S71).
  • the decoding unit 211 supplies an encoding parameter to each block. Further, the decoding unit 211 supplies the quantized transform coefficient level level to the inverse quantization unit 212.
  • the decoding unit 211 divides the LCU based on the split flag included in the encoding parameter, and sets the CU corresponding to each quantized transform coefficient level to a decoding target block (CU, PU, TU). (Step S72). The processing described below is performed for each decoding target block (CU, PU, TU).
  • the prediction unit 216 determines whether the current slice is an I-SLICE (step S73). In the case of I-SLICE (Step S73: Yes), the prediction unit 216 proceeds to Step S76. The prediction unit 216 determines whether the current slice is an I-SLICE (step S73). When the current mode is not the I-SLICE (step S73: No), the prediction unit 216 determines whether the current mode is the skip mode (step S74). In the case of the skip mode (Step S74: Yes), the prediction unit 216 proceeds to Step S79.
  • the prediction unit 216 determines whether the current mode is the inter mode (Step S75). For example, the prediction unit 216 determines whether or not the mode information pred_mode_flag of the prediction information Pinfo indicates an inter prediction process. When the mode is not the inter mode (step S75: No), the prediction unit 216 performs an intra decoding process (step S76).
  • the prediction unit 216 determines whether or not the Merge $ flag of the prediction information Pinfo is 1 (Step S77). When Merge @ flag is not 1 (step S77: No), the prediction unit 216 performs an AMVP mode decoding process (step S78).
  • the AMVP mode decoding process is a process of decoding an image to be decoded using the predicted image P generated by the inter prediction process in the AMVP mode. The AMVP mode decoding processing will be described later. After the end of the AMVP mode decoding process, the image decoding process ends.
  • the prediction unit 216 determines whether or not affine_flag is 1 (Step S79). When affine_flag is not 1 (Step S79: No), the prediction unit 216 performs a translation mode decoding process (Step S80).
  • the translation mode decoding process is a type of inter decoding process, and is a process of decoding a decoding target image using the predicted image P generated by the translation mode inter prediction process. The translation mode decoding process will be described later in the description of the inter decoding process. After the end of the translation mode decoding process, the image decoding process ends.
  • the prediction unit 216 determines whether rotation_flag is 1 (step S81). When rotation_flag is 1 (Step S81: Yes), the prediction unit 216 performs a rotation mode decoding process (Step S82).
  • the rotation mode decoding process is a type of inter decoding process, and is a process of decoding an image to be decoded using the predicted image P generated by the inter prediction process in the rotation mode or the forced rotation mode. The rotation mode decoding process will be described later in the description of the inter decoding process. After the end of the rotation mode decoding process, the image decoding process ends.
  • the prediction unit 216 determines whether scaling_flag is 1 (step S83). When scaling_flag is 1 (Step S83: Yes), the prediction unit 216 performs a scaling mode decoding process (Step S84).
  • the scaling mode decoding process is a type of the inter decoding process, and is a process of decoding a decoding target image using the predicted image P generated by the inter prediction process in the scaling mode or the forced scaling mode. The scaling mode decoding process will be described later in the description of the inter decoding process. After the end of the scaling mode decoding process, the image decoding process ends.
  • the prediction unit 216 performs a normal affine transformation mode decoding process (step S85).
  • the normal affine transformation mode decoding process is a type of inter decoding process, and is a process of decoding an image to be decoded using the predicted image P generated by the normal affine transformation mode inter prediction process.
  • the normal affine transformation mode decoding process will be described later in the description of the inter decoding process. After the end of the normal affine transformation mode decoding process, the image decoding process ends.
  • FIG. 36 is a flowchart illustrating the inter-decoding process.
  • the merge mode encoding process and the AMVP encoding process are one type of the inter decoding process.
  • This inter-decoding process is performed in block units (for example, in CU units or PU units).
  • the inverse quantization unit 212 inversely quantizes the quantized transform coefficient level level obtained by the process of step S71 in FIG. 35 to derive a transform coefficient Coeff_IQ (step S91).
  • This inverse quantization is an inverse process of the quantization performed in step S55 (FIG. 22) of the image encoding process, and is the same process as the inverse quantization performed in step S56 (FIG. 22) of the image encoding process. is there.
  • the inverse transform unit 213 performs an inverse orthogonal transform or the like on the transform coefficient Coeff_IQ obtained by the process of step S91, and derives a prediction residual D ′ (step S91).
  • This inverse orthogonal transform is an inverse process of the orthogonal transform performed in step S54 (FIG. 22) of the image encoding process, and is the same process as the inverse orthogonal transform performed in step S57 (FIG. 22) of the image encoding process. is there.
  • steps S94 and S95 is the same as the processing in steps S51 and S52 in FIG. 22 except that the processing is performed by the prediction unit 216 instead of the prediction unit 119, and a description thereof will be omitted.
  • the operation unit 214 adds the prediction residual D 'derived in step S92 to the prediction image P supplied from the prediction unit 216 to derive a locally decoded image Rec (step S96).
  • the arithmetic unit 214 reconstructs a decoded image for each picture using the obtained local decoded image Rec, and outputs the obtained decoded image to the outside of the image decoding device 200. Further, the arithmetic unit 214 supplies the local decoded image Rec to the frame memory 215.
  • the frame memory 215 reconstructs a decoded image for each picture using the local decoded image Rec supplied from the arithmetic unit 214, and stores the reconstructed image in a buffer in the frame memory 215 (step S96). Then, the image decoding device 200 ends the inter-decoding process.
  • the prediction mode is reduced and the translation rotation mode and the translation scaling mode are added to the affine transformation merge mode.
  • Second and third modes force rotation mode and forced scaling mode
  • the image decoding device 200 can generate a highly accurate predicted image even when the motion information of the encoded block to be referred to is the motion compensation mode of the affine transformation mode.
  • Second embodiment The series of processes described above can be executed by hardware or can be executed by software.
  • a program constituting the software is installed in a computer.
  • the computer includes a computer incorporated in dedicated hardware, a general-purpose personal computer that can execute various functions by installing various programs, and the like.
  • FIG. 37 is a block diagram illustrating a configuration example of hardware of a computer that executes the series of processes described above by a program.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • the input / output interface 810 is further connected to the bus 804.
  • An input unit 811, an output unit 812, a storage unit 813, a communication unit 814, and a drive 815 are connected to the input / output interface 810.
  • the input unit 811 includes a keyboard, a mouse, a microphone, and the like.
  • the output unit 812 includes a display, a speaker, and the like.
  • the storage unit 813 includes a hard disk, a non-volatile memory, and the like.
  • the communication unit 814 includes a network interface and the like.
  • the drive 815 drives a removable medium 821 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 801 loads the program stored in the storage unit 813 into the RAM 803 via the input / output interface 810 and the bus 804, and executes the program, for example. A series of processing is performed.
  • the program executed by the computer 800 can be provided by being recorded on a removable medium 821 as a package medium or the like, for example.
  • the program can be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.
  • the program can be installed in the storage unit 813 via the input / output interface 810 by attaching the removable medium 821 to the drive 815. Further, the program can be received by the communication unit 814 via a wired or wireless transmission medium and installed in the storage unit 813. In addition, the program can be installed in the ROM 802 or the storage unit 813 in advance.
  • the program executed by the computer 800 may be a program in which processing is performed in chronological order according to the order described in this specification, or may be performed at a necessary timing such as in parallel or when a call is made. May be a program that performs the processing.
  • FIG. 38 illustrates an example of a schematic configuration of a television device to which the above-described embodiment is applied.
  • the television device 900 includes an antenna 901, a tuner 902, a demultiplexer 903, a decoder 904, a video signal processing unit 905, a display unit 906, an audio signal processing unit 907, a speaker 908, an external interface (I / F) unit 909, and a control unit. 910, a user interface (I / F) unit 911, and a bus 912.
  • the tuner 902 extracts a signal of a desired channel from a broadcast signal received via the antenna 901 and demodulates the extracted signal. Then, the tuner 902 outputs the encoded bit stream obtained by the demodulation to the demultiplexer 903. That is, the tuner 902 has a role as a transmission unit in the television device 900 that receives an encoded stream in which an image is encoded.
  • the ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ demultiplexer 903 separates the video stream and the audio stream of the program to be viewed from the coded bit stream, and outputs the separated streams to the decoder 904. Further, the demultiplexer 903 extracts auxiliary data such as EPG (Electronic Program Guide) from the encoded bit stream, and supplies the extracted data to the control unit 910. Note that the demultiplexer 903 may perform descrambling when the encoded bit stream is scrambled.
  • EPG Electronic Program Guide
  • the decoder 904 decodes the video stream and the audio stream input from the demultiplexer 903. Then, the decoder 904 outputs the video data generated by the decoding process to the video signal processing unit 905. Also, the decoder 904 outputs the audio data generated by the decoding process to the audio signal processing unit 907.
  • the video signal processing unit 905 reproduces the video data input from the decoder 904 and causes the display unit 906 to display a video. Further, the video signal processing unit 905 may cause the display unit 906 to display an application screen supplied via a network. Further, the video signal processing unit 905 may perform additional processing such as noise removal on the video data according to the setting. Further, the video signal processing unit 905 may generate a GUI (Graphical User Interface) image such as a menu, a button, or a cursor, and superimpose the generated image on the output image.
  • GUI Graphic User Interface
  • the display unit 906 is driven by a drive signal supplied from the video signal processing unit 905, and displays an image on a video surface of a display device (for example, a liquid crystal display, a plasma display, or an OELD (Organic ElectroLuminescence Display) (organic EL display)). Or display an image.
  • a display device for example, a liquid crystal display, a plasma display, or an OELD (Organic ElectroLuminescence Display) (organic EL display)). Or display an image.
  • the audio signal processing unit 907 performs reproduction processing such as D / A conversion and amplification on the audio data input from the decoder 904, and causes the speaker 908 to output audio. Further, the audio signal processing unit 907 may perform additional processing such as noise removal on the audio data.
  • the external interface unit 909 is an interface for connecting the television device 900 to an external device or a network.
  • a video stream or an audio stream received via the external interface unit 909 may be decoded by the decoder 904. That is, the external interface unit 909 also has a role as a transmission unit in the television device 900 that receives an encoded stream in which an image is encoded.
  • the control unit 910 has a processor such as a CPU and a memory such as a RAM and a ROM.
  • the memory stores programs executed by the CPU, program data, EPG data, data acquired via a network, and the like.
  • the program stored in the memory is read and executed by the CPU when the television device 900 is started, for example.
  • the CPU controls the operation of the television device 900 according to, for example, an operation signal input from the user interface unit 911.
  • the user interface unit 911 is connected to the control unit 910.
  • the user interface unit 911 includes, for example, buttons and switches for the user to operate the television device 900, a remote control signal receiving unit, and the like.
  • the user interface unit 911 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 910.
  • the bus 912 connects the tuner 902, the demultiplexer 903, the decoder 904, the video signal processing unit 905, the audio signal processing unit 907, the external interface unit 909, and the control unit 910 to each other.
  • the decoder 904 may have the function of the image decoding device 200 described above. That is, the decoder 904 may decode the encoded data by the method described in each of the above embodiments. By doing so, the television device 900 can obtain the same effects as those of the embodiments described above with reference to FIGS. 11 to 32.
  • the video signal processing unit 905 encodes, for example, image data supplied from the decoder 904, and outputs the obtained encoded data via the external interface unit 909. You may enable it to output to the exterior of the television device 900. Then, the video signal processing unit 905 may have the function of the image encoding device 100 described above. That is, the video signal processing unit 905 may encode the image data supplied from the decoder 904 by the method described in each of the above embodiments. By doing so, the television device 900 can obtain the same effects as those of the embodiments described above with reference to FIGS. 11 to 32.
  • FIG. 39 illustrates an example of a schematic configuration of a mobile phone to which the above-described embodiment is applied.
  • the mobile phone 920 includes an antenna 921, a communication unit 922, an audio codec 923, a speaker 924, a microphone 925, a camera unit 926, an image processing unit 927, a demultiplexing unit 928, a recording / reproducing unit 929, a display unit 930, a control unit 931, and an operation unit.
  • a section 932 and a bus 933 are provided.
  • the antenna 921 is connected to the communication unit 922.
  • the speaker 924 and the microphone 925 are connected to the audio codec 923.
  • the operation unit 932 is connected to the control unit 931.
  • the bus 933 connects the communication unit 922, the audio codec 923, the camera unit 926, the image processing unit 927, the demultiplexing unit 928, the recording / reproducing unit 929, the display unit 930, and the control unit 931 to each other.
  • the mobile phone 920 operates in various operation modes including a voice call mode, a data communication mode, a shooting mode, and a videophone mode, and transmits and receives a voice signal, transmits and receives an e-mail or image data, captures an image, and records data. Perform the operation.
  • an analog voice signal generated by the microphone 925 is supplied to the voice codec 923.
  • the audio codec 923 converts the analog audio signal into audio data, and A / D converts and compresses the converted audio data. Then, the audio codec 923 outputs the compressed audio data to the communication unit 922.
  • the communication unit 922 encodes and modulates the audio data, and generates a transmission signal. Then, communication section 922 transmits the generated transmission signal to a base station (not shown) via antenna 921. In addition, the communication unit 922 amplifies and frequency-converts a wireless signal received via the antenna 921 to obtain a received signal.
  • the communication unit 922 generates audio data by demodulating and decoding the received signal, and outputs the generated audio data to the audio codec 923.
  • the audio codec 923 expands the audio data and performs D / A conversion to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
  • the control unit 931 In the data communication mode, for example, the control unit 931 generates character data constituting an e-mail in accordance with an operation by a user via the operation unit 932.
  • the control unit 931 causes the display unit 930 to display characters.
  • the control unit 931 generates e-mail data in response to a transmission instruction from the user via the operation unit 932, and outputs the generated e-mail data to the communication unit 922.
  • the communication unit 922 encodes and modulates the e-mail data to generate a transmission signal. Then, communication section 922 transmits the generated transmission signal to a base station (not shown) via antenna 921.
  • the communication unit 922 amplifies and frequency-converts a wireless signal received via the antenna 921 to obtain a received signal.
  • the communication unit 922 demodulates and decodes the received signal to restore the e-mail data, and outputs the restored e-mail data to the control unit 931.
  • the control unit 931 causes the display unit 930 to display the contents of the e-mail, and supplies the e-mail data to the recording / reproducing unit 929 to write the data on the storage medium.
  • the recording / reproducing unit 929 has an arbitrary readable / writable storage medium.
  • the storage medium may be a built-in storage medium such as a RAM or a flash memory, or an externally mounted type such as a hard disk, a magnetic disk, a magneto-optical disk, an optical disk, a USB (Universal Serial Bus) memory, or a memory card. Storage medium.
  • the camera unit 926 captures an image of a subject to generate image data, and outputs the generated image data to the image processing unit 927.
  • the image processing unit 927 encodes image data input from the camera unit 926, supplies the encoded stream to the recording / reproducing unit 929, and causes the recording / reproducing unit 929 to write the encoded stream in the storage medium.
  • the recording / reproducing unit 929 reads the encoded stream recorded on the storage medium and outputs the encoded stream to the image processing unit 927.
  • the image processing unit 927 decodes the encoded stream input from the recording / reproducing unit 929, supplies image data to the display unit 930, and displays the image.
  • the multiplexing / demultiplexing unit 928 multiplexes the video stream encoded by the image processing unit 927 and the audio stream input from the audio codec 923, and multiplexes the multiplexed stream into the communication unit 922.
  • Output to The communication unit 922 encodes and modulates the stream, and generates a transmission signal.
  • communication section 922 transmits the generated transmission signal to a base station (not shown) via antenna 921.
  • the communication unit 922 amplifies and frequency-converts a wireless signal received via the antenna 921 to obtain a received signal.
  • These transmission signal and reception signal may include an encoded bit stream.
  • communication section 922 demodulates and decodes the received signal to restore the stream, and outputs the restored stream to demultiplexing section 928.
  • the demultiplexing unit 928 separates the video stream and the audio stream from the input stream, and outputs the video stream to the image processing unit 927 and the audio stream to the audio codec 923.
  • the image processing unit 927 decodes the video stream and generates video data.
  • the video data is supplied to the display unit 930, and the display unit 930 displays a series of images.
  • the audio codec 923 expands and D / A converts the audio stream to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
  • the image processing unit 927 may have the function of the image encoding device 100 described above. That is, the image processing unit 927 may encode the image data by the method described in each of the above embodiments. By doing so, the mobile phone 920 can obtain the same effects as those of the embodiments described above with reference to FIGS. 11 to 32.
  • the image processing unit 927 may have the function of the image decoding device 200 described above. That is, the image processing unit 927 may decode the encoded data by the method described in each of the above embodiments. By doing so, the mobile phone 920 can obtain the same effects as those of the embodiments described above with reference to FIGS. 11 to 32.
  • FIG. 40 illustrates an example of a schematic configuration of a recording / reproducing apparatus to which the above-described embodiment is applied.
  • the recording / reproducing device 940 encodes, for example, audio data and video data of the received broadcast program and records the encoded data on a recording medium. Further, the recording / reproducing device 940 may, for example, encode audio data and video data obtained from another device and record the encoded audio data and video data on a recording medium.
  • the recording / reproducing device 940 reproduces data recorded on a recording medium on a monitor and a speaker, for example, in accordance with a user's instruction. At this time, the recording / reproducing device 940 decodes the audio data and the video data.
  • the recording / reproducing device 940 includes a tuner 941, an external interface (I / F) unit 942, an encoder 943, an HDD (Hard Disk Drive) unit 944, a disk drive 945, a selector 946, a decoder 947, and an OSD (On-Screen Display) unit 948. , A control unit 949, and a user interface (I / F) unit 950.
  • the tuner 941 extracts a signal of a desired channel from a broadcast signal received via an antenna (not shown), and demodulates the extracted signal. Then, the tuner 941 outputs the encoded bit stream obtained by the demodulation to the selector 946. That is, the tuner 941 has a role as a transmission unit in the recording / reproducing device 940.
  • the external interface unit 942 is an interface for connecting the recording / reproducing device 940 to an external device or a network.
  • the external interface unit 942 may be, for example, an IEEE (Institute of Electrical and Electronic Engineers) 1394 interface, a network interface, a USB interface, a flash memory interface, or the like.
  • video data and audio data received via the external interface unit 942 are input to the encoder 943. That is, the external interface unit 942 has a role as a transmission unit in the recording / reproducing device 940.
  • the encoder 943 encodes the video data and the audio data when the video data and the audio data input from the external interface unit 942 are not encoded. Then, the encoder 943 outputs the encoded bit stream to the selector 946.
  • the HDD unit 944 records an encoded bit stream in which content data such as video and audio are compressed, various programs, and other data on an internal hard disk. Further, the HDD unit 944 reads these data from the hard disk at the time of reproducing video and audio.
  • the disk drive 945 records and reads data to and from a mounted recording medium.
  • the recording medium mounted on the disc drive 945 is, for example, a DVD (Digital Versatile Disc) disc (DVD-Video, DVD-RAM (DVD-Random Access Memory), DVD-R (DVD-Recordable), DVD-RW (DVD-DVD). Rewritable), DVD + R (DVD + Recordable), DVD + RW (DVD + Rewritable), or a Blu-ray (registered trademark) disc.
  • the selector 946 selects an encoded bit stream input from the tuner 941 or the encoder 943 when recording video and audio, and outputs the selected encoded bit stream to the HDD unit 944 or the disk drive 945. Further, the selector 946 outputs an encoded bit stream input from the HDD unit 944 or the disk drive 945 to the decoder 947 at the time of reproducing video and audio.
  • the decoder 947 decodes the encoded bit stream to generate video data and audio data. Then, the decoder 947 outputs the generated video data to the OSD unit 948. The decoder 947 outputs the generated audio data to an external speaker.
  • the OSD unit 948 reproduces the video data input from the decoder 947 and displays the video.
  • the OSD unit 948 may superimpose a GUI image such as a menu, a button, or a cursor on the video to be displayed.
  • the control unit 949 includes a processor such as a CPU and a memory such as a RAM and a ROM.
  • the memory stores a program executed by the CPU, program data, and the like.
  • the program stored in the memory is read and executed by the CPU when the recording / reproducing device 940 is activated, for example.
  • the CPU controls the operation of the recording / reproducing device 940 according to, for example, an operation signal input from the user interface unit 950.
  • the user interface unit 950 is connected to the control unit 949.
  • the user interface unit 950 includes, for example, buttons and switches for a user to operate the recording / reproducing device 940, a remote control signal receiving unit, and the like.
  • the user interface unit 950 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 949.
  • the encoder 943 may have the function of the image encoding device 100 described above. That is, the encoder 943 may encode the image data by the method described in each of the above embodiments. By doing so, the recording / reproducing device 940 can obtain the same effects as those of the embodiments described above with reference to FIGS. 11 to 32.
  • the decoder 947 may have the function of the image decoding device 200 described above. That is, the decoder 947 may decode the encoded data by the method described in each of the above embodiments. By doing so, the recording / reproducing device 940 can obtain the same effects as those of the embodiments described above with reference to FIGS. 11 to 32.
  • FIG. 41 illustrates an example of a schematic configuration of an imaging device to which the above-described embodiment is applied.
  • the imaging device 960 captures a subject to generate an image, encodes the image data, and records the image data on a recording medium.
  • the imaging device 960 includes an optical block 961, an imaging unit 962, a signal processing unit 963, an image processing unit 964, a display unit 965, an external interface (I / F) unit 966, a memory unit 967, a media drive 968, an OSD unit 969, and a control unit.
  • the optical block 961 is connected to the imaging unit 962.
  • the imaging unit 962 is connected to the signal processing unit 963.
  • the display unit 965 is connected to the image processing unit 964.
  • the user interface unit 971 is connected to the control unit 970.
  • the bus 972 interconnects the image processing unit 964, the external interface unit 966, the memory unit 967, the media drive 968, the OSD unit 969, and the control unit 970.
  • the optical block 961 has a focus lens, a diaphragm mechanism, and the like.
  • the optical block 961 forms an optical image of a subject on an imaging surface of the imaging unit 962.
  • the imaging unit 962 includes an image sensor such as a CCD (Charge Coupled Device) or a CMOS (Complementary Metal Oxide Semiconductor), and converts an optical image formed on an imaging surface into an image signal as an electric signal by photoelectric conversion. Then, the imaging unit 962 outputs the image signal to the signal processing unit 963.
  • CCD Charge Coupled Device
  • CMOS Complementary Metal Oxide Semiconductor
  • the signal processing unit 963 performs various camera signal processing such as knee correction, gamma correction, and color correction on the image signal input from the imaging unit 962.
  • the signal processing unit 963 outputs the image data after the camera signal processing to the image processing unit 964.
  • the image processing unit 964 encodes the image data input from the signal processing unit 963 and generates encoded data. Then, the image processing unit 964 outputs the generated encoded data to the external interface unit 966 or the media drive 968. Further, the image processing unit 964 decodes encoded data input from the external interface unit 966 or the media drive 968 to generate image data. Then, the image processing unit 964 outputs the generated image data to the display unit 965. Further, the image processing unit 964 may output image data input from the signal processing unit 963 to the display unit 965 to display an image. Further, the image processing unit 964 may superimpose the display data acquired from the OSD unit 969 on the image output to the display unit 965.
  • the OSD unit 969 generates a GUI image such as a menu, a button, or a cursor, and outputs the generated image to the image processing unit 964.
  • the external interface unit 966 is configured as, for example, a USB input / output terminal.
  • the external interface unit 966 connects the imaging device 960 and a printer when printing an image, for example.
  • a drive is connected to the external interface unit 966 as necessary.
  • a removable medium such as a magnetic disk or an optical disk is mounted on the drive, and a program read from the removable medium can be installed in the imaging device 960.
  • the external interface unit 966 may be configured as a network interface connected to a network such as a LAN or the Internet. That is, the external interface unit 966 has a role as a transmission unit in the imaging device 960.
  • the recording medium attached to the media drive 968 may be any readable / writable removable medium, such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory. Further, a recording medium may be fixedly mounted on the media drive 968, and a non-portable storage unit such as a built-in hard disk drive or a solid state drive (SSD) may be configured.
  • SSD solid state drive
  • the control unit 970 has a processor such as a CPU and a memory such as a RAM and a ROM.
  • the memory stores a program executed by the CPU, program data, and the like.
  • the program stored in the memory is read and executed by the CPU when the imaging device 960 is activated, for example.
  • the CPU controls the operation of the imaging device 960 according to, for example, an operation signal input from the user interface unit 971.
  • the user interface unit 971 is connected to the control unit 970.
  • the user interface unit 971 includes, for example, buttons and switches for the user to operate the imaging device 960.
  • the user interface unit 971 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 970.
  • the image processing unit 964 may have the function of the image encoding device 100 described above. That is, the image processing unit 964 may encode the image data by the method described in each of the above embodiments. By doing so, the imaging device 960 can obtain the same effects as those of the embodiments described above with reference to FIGS. 11 to 32.
  • the image processing unit 964 may have the function of the image decoding device 200 described above. That is, the image processing unit 964 may decode the encoded data by the method described in each of the above embodiments. By doing so, the imaging device 960 can obtain the same effects as those of the embodiments described above with reference to FIGS. 11 to 32.
  • the present technology is applicable to any configuration mounted on an arbitrary device or a device configuring a system, for example, a processor as a system LSI (Large Scale Integration), a module using a plurality of processors, a unit using a plurality of modules, or the like. , And the like may be implemented as a set in which other functions are added to the unit (that is, a configuration of a part of the device).
  • FIG. 42 illustrates an example of a schematic configuration of a video set to which the present technology is applied.
  • the video set 1300 shown in FIG. 42 has such a multifunctional configuration, and a device having a function related to image encoding and decoding (either one or both may be used) is provided for a device having such a function. It is a combination of devices having other related functions.
  • the video set 1300 includes modules such as a video module 1311, an external memory 1312, a power management module 1313, and a front-end module 1314, and a connectivity 1321, a camera 1322, a sensor 1323, and the like.
  • modules such as a video module 1311, an external memory 1312, a power management module 1313, and a front-end module 1314, and a connectivity 1321, a camera 1322, a sensor 1323, and the like.
  • a device having a function such as a video module 1311, an external memory 1312, a power management module 1313, and a front-end module 1314, and a connectivity 1321, a camera 1322, a sensor 1323, and the like.
  • a module is a component that has a coherent function by assembling several part-related functions.
  • the specific physical configuration is arbitrary, for example, a plurality of processors each having a function, electronic circuit elements such as resistors and capacitors, and other devices are arranged on a wiring board or the like and integrated. . It is also conceivable to combine the module with another module, a processor or the like to form a new module.
  • the video module 1311 is a combination of components having functions related to image processing, and includes an application processor, a video processor, a broadband modem 1333, and an RF module 1334.
  • the processor has a configuration having a predetermined function integrated on a semiconductor chip using a system-on-a-chip (SoC).
  • SoC system-on-a-chip
  • the configuration having the predetermined function may be a logic circuit (hardware configuration), a CPU, a ROM, a RAM, and the like, and a program (software configuration) executed by using them. , Or a combination of both.
  • a processor has a logic circuit and a CPU, a ROM, a RAM, and the like, and a part of the functions is implemented by a logic circuit (hardware configuration), and other functions are executed by the CPU (software configuration). May be realized.
  • the application processor 1331 in FIG. 42 is a processor that executes an application related to image processing.
  • the application executed by the application processor 1331 not only performs arithmetic processing but also controls the internal and external components of the video module 1311 such as the video processor 1332 as necessary, in order to realize a predetermined function. .
  • the video processor 1332 is a processor having a function relating to image encoding / decoding (one or both).
  • the broadband modem 1333 digitally modulates data (digital signal) transmitted by wired or wireless (or both) broadband communication performed via a broadband line such as the Internet or a public telephone line network, and converts the data into an analog signal. It converts or converts an analog signal received by the broadband communication into data (digital signal).
  • the broadband modem 1333 processes arbitrary information such as image data processed by the video processor 1332, a stream in which the image data is encoded, an application program, and setting data.
  • the RF module 1334 is a module that performs frequency conversion, modulation / demodulation, amplification, filtering, and the like on an RF (Radio Frequency) signal transmitted and received via an antenna. For example, the RF module 1334 performs frequency conversion or the like on the baseband signal generated by the broadband modem 1333 to generate an RF signal. Further, for example, the RF module 1334 performs a frequency conversion or the like on the RF signal received via the front-end module 1314 to generate a baseband signal.
  • RF Radio Frequency
  • the application processor 1331 and the video processor 1332 may be integrated into a single processor.
  • the external memory 1312 is a module provided outside the video module 1311 and having a storage device used by the video module 1311.
  • the storage device of the external memory 1312 may be realized by any physical configuration, but is generally used for storing large-capacity data such as image data in frame units. For example, it is desirable to realize this using a relatively inexpensive and large-capacity semiconductor memory such as a DRAM (Dynamic Random Access Memory).
  • DRAM Dynamic Random Access Memory
  • the power management module 1313 manages and controls power supply to the video module 1311 (each component in the video module 1311).
  • the front-end module 1314 is a module that provides the RF module 1334 with a front-end function (a circuit at the transmitting / receiving end of the antenna). As shown in FIG. 42, the front end module 1314 includes, for example, an antenna unit 1351, a filter 1352, and an amplification unit 1353.
  • the antenna unit 1351 has an antenna for transmitting / receiving a radio signal and a peripheral configuration thereof.
  • the antenna unit 1351 transmits a signal supplied from the amplification unit 1353 as a wireless signal, and supplies the received wireless signal to the filter 1352 as an electric signal (RF signal).
  • the filter 1352 performs a filtering process or the like on the RF signal received via the antenna unit 1351, and supplies the processed RF signal to the RF module 1334.
  • the amplification unit 1353 amplifies the RF signal supplied from the RF module 1334 and supplies the RF signal to the antenna unit 1351.
  • the connectivity 1321 is a module having a function regarding connection with the outside.
  • the physical configuration of the connectivity 1321 is arbitrary.
  • the connectivity 1321 has a configuration having a communication function other than the communication standard supported by the broadband modem 1333, an external input / output terminal, and the like.
  • the communication 1321 is a communication conforming to a wireless communication standard such as Bluetooth (registered trademark), IEEE 802.11 (for example, Wi-Fi (Wireless Fidelity, registered trademark)), NFC (Near Field Communication), and IrDA (InfraRed Data Association).
  • a module having a function, an antenna for transmitting and receiving a signal conforming to the standard, or the like may be provided.
  • the connectivity 1321 includes a module having a communication function conforming to a wired communication standard such as USB (Universal Serial Bus) and HDMI (registered trademark) (High-Definition Multimedia Interface), and a terminal conforming to the standard. You may do so.
  • the connectivity 1321 may have another data (signal) transmission function such as an analog input / output terminal.
  • the connectivity 1321 may include a device to which data (signal) is transmitted.
  • the connectivity 1321 is a drive that reads and writes data on a recording medium such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory (not only a drive of a removable medium, but also a hard disk, a solid state drive (SSD)). , NAS (including Network Attached Storage) and the like.
  • the connectivity 1321 may include an image and audio output device (a monitor, a speaker, and the like).
  • the camera 1322 is a module having a function of capturing an image of a subject and obtaining image data of the subject.
  • Image data obtained by imaging with the camera 1322 is supplied to, for example, a video processor 1332 and encoded.
  • the sensor 1323 includes, for example, a voice sensor, an ultrasonic sensor, an optical sensor, an illuminance sensor, an infrared sensor, an image sensor, a rotation sensor, an angle sensor, an angular velocity sensor, a speed sensor, an acceleration sensor, a tilt sensor, a magnetic identification sensor, an impact sensor, A module having an arbitrary sensor function such as a temperature sensor.
  • the data detected by the sensor 1323 is supplied to, for example, an application processor 1331 and used by an application or the like.
  • the configuration described above as a module may be realized as a processor, or the configuration described as a processor may be realized as a module.
  • the present technology can be applied to the video processor 1332 as described later. Therefore, the video set 1300 can be implemented as a set to which the present technology is applied.
  • FIG. 43 illustrates an example of a schematic configuration of a video processor 1332 (FIG. 42) to which the present technology is applied.
  • the video processor 1332 receives a video signal and an audio signal and encodes them by a predetermined method, decodes the encoded video data and audio data, and outputs the video signal and the audio signal. And a function of reproducing and outputting an audio signal.
  • the video processor 1332 includes a video input processing unit 1401, a first image scaling unit 1402, a second image scaling unit 1403, a video output processing unit 1404, a frame memory 1405, and a memory control unit 1406. Having.
  • the video processor 1332 has an encode / decode engine 1407, video ES (Elementary @ Stream) buffers 1408A and 1408B, and audio ES buffers 1409A and 1409B.
  • the video processor 1332 includes an audio encoder 1410, an audio decoder 1411, a multiplexing unit (MUX (Multiplexer)) 1412, a demultiplexing unit (DMUX (Demultiplexer)) 1413, and a stream buffer 1414.
  • MUX Multiplexing unit
  • DMUX demultiplexing unit
  • the video input processing unit 1401 acquires a video signal input from, for example, the connectivity 1321 (FIG. 42) and converts the video signal into digital image data.
  • the first image scaling unit 1402 performs format conversion, image scaling processing, and the like on image data.
  • the second image enlargement / reduction unit 1403 performs image enlargement / reduction processing on the image data in accordance with the format at the output destination via the video output processing unit 1404, or performs the same operation as the first image enlargement / reduction unit 1402. Format conversion, image enlargement / reduction processing, and the like.
  • the video output processing unit 1404 performs format conversion, conversion to an analog signal, and the like on the image data, and outputs the reproduced video signal to, for example, the connectivity 1321.
  • the frame memory 1405 is a memory for image data shared by the video input processing unit 1401, the first image scaling unit 1402, the second image scaling unit 1403, the video output processing unit 1404, and the encoding / decoding engine 1407. .
  • the frame memory 1405 is realized as a semiconductor memory such as a DRAM, for example.
  • the memory control unit 1406 receives a synchronization signal from the encode / decode engine 1407, and controls write / read access to the frame memory 1405 according to the access schedule to the frame memory 1405 written in the access management table 1406A.
  • the access management table 1406A is updated by the memory control unit 1406 in accordance with processing executed by the encode / decode engine 1407, the first image scaling unit 1402, the second image scaling unit 1403, and the like.
  • the encoding / decoding engine 1407 performs an encoding process on image data and a decoding process on a video stream that is data obtained by encoding image data. For example, the encoding / decoding engine 1407 encodes the image data read from the frame memory 1405 and sequentially writes the encoded image data as a video stream in the video ES buffer 1408A. In addition, for example, the video stream is sequentially read from the video ES buffer 1408B, decoded, and sequentially written to the frame memory 1405 as image data. The encoding / decoding engine 1407 uses the frame memory 1405 as a work area in these encoding and decoding. Further, the encode / decode engine 1407 outputs a synchronization signal to the memory control unit 1406, for example, at the timing of starting processing for each macroblock.
  • the video ES buffer 1408A buffers the video stream generated by the encoding / decoding engine 1407 and supplies the video stream to the multiplexing unit (MUX) 1412.
  • the video ES buffer 1408B buffers the video stream supplied from the demultiplexer (DMUX) 1413 and supplies the buffered video stream to the encode / decode engine 1407.
  • the audio ES buffer 1409A buffers the audio stream generated by the audio encoder 1410 and supplies the buffered audio stream to the multiplexing unit (MUX) 1412.
  • the audio ES buffer 1409B buffers the audio stream supplied from the demultiplexer (DMUX) 1413 and supplies the audio stream to the audio decoder 1411.
  • the audio encoder 1410 converts, for example, an audio signal input from, for example, the connectivity 1321 into a digital signal, and encodes the audio signal using a predetermined method such as an MPEG audio method or an AC3 (AudioCode # number # 3) method.
  • the audio encoder 1410 sequentially writes an audio stream, which is data obtained by encoding an audio signal, into the audio ES buffer 1409A.
  • the audio decoder 1411 decodes the audio stream supplied from the audio ES buffer 1409B, performs conversion to, for example, an analog signal, and supplies the reproduced audio signal to, for example, the connectivity 1321 or the like.
  • the multiplexing unit (MUX) 1412 multiplexes the video stream and the audio stream.
  • the multiplexing method (that is, the format of the bit stream generated by the multiplexing) is arbitrary.
  • the multiplexing unit (MUX) 1412 can also add predetermined header information and the like to the bit stream. That is, the multiplexing unit (MUX) 1412 can convert the format of the stream by multiplexing.
  • the multiplexing unit (MUX) 1412 multiplexes the video stream and the audio stream to convert the multiplexed stream into a transport stream that is a bit stream in a transfer format.
  • the multiplexing unit (MUX) 1412 multiplexes the video stream and the audio stream to convert the multiplexed data into data (file data) in a recording file format.
  • the demultiplexer (DMUX) 1413 demultiplexes the bit stream in which the video stream and the audio stream are multiplexed in a method corresponding to the multiplexing by the multiplexor (MUX) 1412. That is, the demultiplexing unit (DMUX) 1413 extracts a video stream and an audio stream from the bit stream read from the stream buffer 1414 (separates the video stream and the audio stream). That is, the demultiplexing unit (DMUX) 1413 can convert the format of the stream by demultiplexing (reverse conversion of the conversion performed by the multiplexing unit (MUX) 1412).
  • the demultiplexing unit (DMUX) 1413 acquires a transport stream supplied from, for example, the connectivity 1321 or the broadband modem 1333 via the stream buffer 1414, and demultiplexes the video stream and the audio stream. And can be converted to Also, for example, the demultiplexing unit (DMUX) 1413 obtains, via the stream buffer 1414, the file data read from the various recording media by the connectivity 1321, for example, and demultiplexes the file data, thereby obtaining the video stream and the audio. It can be converted to a stream.
  • the stream buffer 1414 buffers the bit stream.
  • the stream buffer 1414 buffers the transport stream supplied from the multiplexing unit (MUX) 1412, and transmits the transport stream to, for example, the connectivity 1321 or the broadband modem 1333 at a predetermined timing or based on a request from the outside. Supply.
  • MUX multiplexing unit
  • the stream buffer 1414 buffers the file data supplied from the multiplexing unit (MUX) 1412, and supplies the file data to, for example, the connectivity 1321 at a predetermined timing or based on a request from the outside, etc. It is recorded on various recording media.
  • MUX multiplexing unit
  • the stream buffer 1414 buffers a transport stream acquired via, for example, the connectivity 1321 or the broadband modem 1333, and performs demultiplexing at a predetermined timing or based on a request from the outside or the like. 1413.
  • the stream buffer 1414 buffers file data read from various recording media in the connectivity 1321 or the like, and demultiplexes (DMUX) 1413 at a predetermined timing or based on an external request or the like. To supply.
  • DMUX demultiplexes
  • a video signal input to the video processor 1332 from the connectivity 1321 or the like is converted into digital image data of a predetermined format such as 4: 2: 2Y / Cb / Cr by the video input processing unit 1401, and is converted to digital image data by the frame memory 1405.
  • the digital image data is read by the first image enlargement / reduction unit 1402 or the second image enlargement / reduction unit 1403, and is subjected to format conversion and enlargement / reduction processing to a predetermined method such as 4: 2: 0 Y / Cb / Cr method. Is performed, and the data is written into the frame memory 1405 again.
  • This image data is encoded by the encode / decode engine 1407 and written to the video ES buffer 1408A as a video stream.
  • the audio signal input to the video processor 1332 from the connectivity 1321 or the like is encoded by the audio encoder 1410 and written as an audio stream to the audio ES buffer 1409A.
  • the video stream of the video ES buffer 1408A and the audio stream of the audio ES buffer 1409A are read out by the multiplexing unit (MUX) 1412, multiplexed, and converted into a transport stream or file data.
  • the transport stream generated by the multiplexing unit (MUX) 1412 is buffered in the stream buffer 1414, and then output to an external network via, for example, the connectivity 1321 or the broadband modem 1333.
  • the file data generated by the multiplexing unit (MUX) 1412 is buffered in the stream buffer 1414, and then output to, for example, the connectivity 1321 and recorded on various recording media.
  • a transport stream input to the video processor 1332 from an external network via the connectivity 1321, the broadband modem 1333, or the like is buffered in the stream buffer 1414 and then demultiplexed by the demultiplexing unit (DMUX) 1413.
  • DMUX demultiplexing unit
  • file data read from various recording media in the connectivity 1321 and the like and input to the video processor 1332 is buffered in the stream buffer 1414 and then demultiplexed by the demultiplexing unit (DMUX) 1413. That is, the transport stream or the file data input to the video processor 1332 is separated by the demultiplexer (DMUX) 1413 into a video stream and an audio stream.
  • the audio stream is supplied to the audio decoder 1411 via the audio ES buffer 1409B, where it is decoded and an audio signal is reproduced.
  • the video stream is sequentially read and decoded by the encode / decode engine 1407, and written to the frame memory 1405.
  • the decoded image data is scaled by the second image scaling unit 1403 and written to the frame memory 1405.
  • the decoded image data is read out by the video output processing unit 1404, is converted into a format such as 4: 2: 2Y / Cb / Cr format, is further converted into an analog signal, and is converted into a video signal. Is reproduced and output.
  • the present technology when applying the present technology to the video processor 1332 configured as described above, the present technology according to each embodiment described above may be applied to the encode / decode engine 1407. That is, for example, the encoding / decoding engine 1407 may have the function of the image encoding device 100 and / or the function of the image decoding device 200 described above. By doing so, the video processor 1332 can obtain the same effects as those of the embodiments described above with reference to FIGS. 11 to 32.
  • the present technology (that is, the function of the image encoding device 100 and / or the function of the image decoding device 200) may be realized by hardware such as a logic circuit. It may be realized by software such as an embedded program, or may be realized by both of them.
  • FIG. 44 illustrates another example of a schematic configuration of the video processor 1332 to which the present technology is applied.
  • the video processor 1332 has a function of encoding / decoding video data by a predetermined method.
  • the video processor 1332 has a control unit 1511, a display interface 1512, a display engine 1513, an image processing engine 1514, and an internal memory 1515.
  • the video processor 1332 includes a codec engine 1516, a memory interface 1517, a multiplexing / demultiplexing unit (MUX / DMUX) 1518, a network interface 1519, and a video interface 1520.
  • MUX / DMUX multiplexing / demultiplexing unit
  • the control unit 1511 controls the operation of each processing unit in the video processor 1332, such as the display interface 1512, the display engine 1513, the image processing engine 1514, and the codec engine 1516.
  • the control unit 1511 has, for example, a main CPU 1531, a sub CPU 1532, and a system controller 1533.
  • the main CPU 1531 executes a program or the like for controlling the operation of each processing unit in the video processor 1332.
  • the main CPU 1531 generates a control signal according to the program or the like, and supplies the control signal to each processing unit (that is, controls the operation of each processing unit).
  • the sub CPU 1532 plays an auxiliary role of the main CPU 1531.
  • the sub CPU 1532 executes a child process such as a program executed by the main CPU 1531, a subroutine, and the like.
  • the system controller 1533 controls operations of the main CPU 1531 and the sub CPU 1532, such as designating a program to be executed by the main CPU 1531 and the sub CPU 1532.
  • the display interface 1512 outputs image data to, for example, the connectivity 1321 under the control of the control unit 1511.
  • the display interface 1512 converts the digital image data into an analog signal, and outputs the analog data as a reproduced video signal or as digital image data to a monitor device of the connectivity 1321 or the like.
  • the display engine 1513 performs various conversion processes such as format conversion, size conversion, and color gamut conversion on the image data under the control of the control unit 1511 so as to match hardware specifications of a monitor device or the like for displaying the image. I do.
  • the image processing engine 1514 performs predetermined image processing on image data, for example, a filter process for improving image quality, under the control of the control unit 1511.
  • the internal memory 1515 is a memory provided inside the video processor 1332 and shared by the display engine 1513, the image processing engine 1514, and the codec engine 1516.
  • the internal memory 1515 is used for exchanging data between the display engine 1513, the image processing engine 1514, and the codec engine 1516, for example.
  • the internal memory 1515 stores data supplied from the display engine 1513, the image processing engine 1514, or the codec engine 1516, and stores the data as needed (for example, upon request). It is supplied to the image processing engine 1514 or the codec engine 1516.
  • the internal memory 1515 may be realized by any storage device, but is generally used for storing small-capacity data such as image data and parameters in block units. It is desirable that the memory be realized by a semiconductor memory such as Static @ Random @ Access @ Memory which has a relatively small capacity (compared to the external memory 1312, for example) but has a high response speed.
  • the codec engine 1516 performs processing related to encoding and decoding of image data.
  • the encoding / decoding method supported by the codec engine 1516 is arbitrary, and the number thereof may be one or plural.
  • the codec engine 1516 may have a codec function of a plurality of encoding / decoding schemes, and perform encoding of image data or decoding of encoded data using a selected one of them.
  • the codec engine 1516 includes, for example, MPEG-2 @ Video1541, AVC / H.2641542, HEVC / H.2651543, HEVC / H.265 (Scalable) It has HEVC / H.265 (Multi-view) 1545 and MPEG-DASH 1551.
  • Video 1541 is a functional block that encodes and decodes image data according to the MPEG-2 system.
  • AVC / H.2641542 is a functional block that encodes and decodes image data in the AVC format.
  • HEVC / H.2651543 is a functional block that encodes and decodes image data using the HEVC method.
  • HEVC / H.265 (Scalable) 1544 is a functional block that performs scalable encoding and scalable decoding of image data using the HEVC method.
  • HEVC / H.265 (Multi-view) 1545 is a functional block that performs multi-view encoding and multi-view decoding of image data using the HEVC scheme.
  • the MPEG-DASH 1551 is a functional block for transmitting and receiving image data in the MPEG-DASH (MPEG-Dynamic Adaptive Streaming over HTTP) format.
  • MPEG-DASH is a technology for streaming video using HTTP (HyperText Transfer Protocol), and selects and transmits, in segments, an appropriate one from a plurality of coded data prepared in advance with different resolutions etc. Is one of the features.
  • the MPEG-DASH 1551 performs generation of a stream conforming to the standard, transmission control of the stream, and the like.
  • the above-described MPEG-2 @ Video 1541 to HEVC / H.265 (Multi-view) 1545 are used. Use
  • the memory interface 1517 is an interface for the external memory 1312. Data supplied from the image processing engine 1514 or the codec engine 1516 is supplied to the external memory 1312 via the memory interface 1517. The data read from the external memory 1312 is supplied to the video processor 1332 (the image processing engine 1514 or the codec engine 1516) via the memory interface 1517.
  • the multiplexing / demultiplexing unit (MUX / DMUX) 1518 performs multiplexing and demultiplexing of various data related to an image, such as a bit stream of encoded data, image data, and a video signal.
  • the multiplexing / demultiplexing method is optional.
  • the multiplexing / demultiplexing unit (MUX / DMUX) 1518 can not only combine a plurality of data into one, but also add predetermined header information or the like to the data.
  • the multiplexing / demultiplexing unit (MUXMDMUX) 1518 not only divides one piece of data into a plurality of pieces of data, but also adds predetermined header information or the like to each piece of divided data. it can. That is, the multiplexing / demultiplexing unit (MUX / DMUX) 1518 can convert the data format by multiplexing / demultiplexing. For example, the multiplexing / demultiplexing unit (MUX DMUX) 1518 multiplexes the bit stream to form a transport stream that is a bit stream in a transfer format or data (file data) in a file format for recording. Can be converted to Of course, the inverse conversion is also possible by demultiplexing.
  • the network interface 1519 is an interface for, for example, the broadband modem 1333, the connectivity 1321, and the like.
  • the video interface 1520 is an interface for, for example, the connectivity 1321, the camera 1322, and the like.
  • the transport stream is supplied to a multiplexing / demultiplexing unit (MUX @ DMUX) 1518 via a network interface 1519. It is demultiplexed and decoded by the codec engine 1516.
  • the image data obtained by decoding by the codec engine 1516 is subjected to predetermined image processing by the image processing engine 1514, is subjected to predetermined conversion by the display engine 1513, and is converted to, for example, the connectivity 1321 via the display interface 1512. Is supplied and the image is displayed on the monitor.
  • image data obtained by decoding by the codec engine 1516 is re-encoded by the codec engine 1516, multiplexed by the multiplexing / demultiplexing unit (MUXMDMUX) 1518, converted into file data, and
  • the data is output to, for example, the connectivity 1321 via the interface 1520 and is recorded on various recording media.
  • MUXMDMUX multiplexing / demultiplexing unit
  • the file data of the coded data obtained by coding the image data which is read from a recording medium (not shown) by the connectivity 1321 or the like, is transmitted via the video interface 1520 to the multiplexing / demultiplexing unit (MUX @ DMUX). ) 1518 to be demultiplexed and decoded by the codec engine 1516.
  • Image data obtained by decoding by the codec engine 1516 is subjected to predetermined image processing by an image processing engine 1514, is subjected to predetermined conversion by a display engine 1513, and is supplied to a connectivity 1321 or the like via a display interface 1512. , The image is displayed on the monitor.
  • image data obtained by decoding by the codec engine 1516 is re-encoded by the codec engine 1516, multiplexed by the multiplexing / demultiplexing unit (MUXMDMUX) 1518, and converted into a transport stream.
  • the data is supplied to, for example, the connectivity 1321 or the broadband modem 1333 via the network interface 1519 and transmitted to another device (not shown).
  • the transfer of image data and other data between the processing units in the video processor 1332 is performed using, for example, the internal memory 1515 and the external memory 1312.
  • the power management module 1313 controls, for example, power supply to the control unit 1511.
  • the present technology when applying the present technology to the video processor 1332 configured as described above, the present technology according to each embodiment described above may be applied to the codec engine 1516. That is, for example, the codec engine 1516 may have the function of the image encoding device 100 and / or the function of the image decoding device 200 described above. By doing so, the video processor 1332 can obtain the same effects as those of the embodiments described above with reference to FIGS. 11 to 32.
  • the present technology (that is, the function of the image encoding device 100) may be realized by hardware such as a logic circuit, or may be realized by software such as an embedded program. Or both of them.
  • the configuration of the video processor 1332 is arbitrary, and may be other than the two examples described above.
  • the video processor 1332 may be configured as one semiconductor chip, or may be configured as a plurality of semiconductor chips.
  • a three-dimensional stacked LSI in which a plurality of semiconductors are stacked may be used. Further, it may be realized by a plurality of LSIs.
  • the video set 1300 can be incorporated in various devices that process image data.
  • the video set 1300 can be incorporated in a television device 900 (FIG. 38), a mobile phone 920 (FIG. 39), a recording / reproducing device 940 (FIG. 40), an imaging device 960 (FIG. 41), and the like.
  • the device can obtain the same effects as those of the embodiments described above with reference to FIGS.
  • each configuration of the video set 1300 described above can be implemented as a configuration to which the present technology is applied as long as the configuration includes the video processor 1332.
  • the video processor 1332 can be implemented as a video processor to which the present technology is applied.
  • the processor and the video module 1311 indicated by the dotted line 1341 as described above can be implemented as a processor or a module to which the present technology is applied.
  • the video module 1311, the external memory 1312, the power management module 1313, and the front-end module 1314 can be combined and implemented as a video unit 1361 to which the present technology is applied. In any case, the same effects as those of the embodiments described above with reference to FIGS. 11 to 32 can be obtained.
  • any configuration including the video processor 1332 can be incorporated in various devices that process image data, as in the case of the video set 1300.
  • a video processor 1332, a processor indicated by a dotted line 1341, a video module 1311 or a video unit 1361 may be connected to a television device 900 (FIG. 38), a mobile phone 920 (FIG. 39), a recording / reproducing device 940 (FIG. 40), It can be incorporated in the imaging device 960 (FIG. 41) or the like. Then, by incorporating any configuration to which the present technology is applied, the device obtains the same effects as those of the embodiments described above with reference to FIGS. 11 to 32, similarly to the case of the video set 1300. be able to.
  • FIG. 45 illustrates an example of a schematic configuration of a network system to which the present technology is applied.
  • the network system 1600 shown in FIG. 45 is a system in which devices exchange information about images (moving images) via a network.
  • the cloud service 1601 of the network system 1600 is connected to terminals such as a computer 1611, an AV (Audio Visual) device 1612, a portable information processing terminal 1613, and an IoT (Internet of Things) device 1614 which are communicably connected to the cloud service 1601.
  • terminals such as a computer 1611, an AV (Audio Visual) device 1612, a portable information processing terminal 1613, and an IoT (Internet of Things) device 1614 which are communicably connected to the cloud service 1601.
  • the cloud service 1601 provides a terminal with an image (moving image) content supply service such as so-called video distribution (on-demand or live distribution).
  • the cloud service 1601 provides a backup service for receiving and storing image (moving image) content from a terminal.
  • the cloud service 1601 provides a service for media
  • the physical configuration of the cloud service 1601 is optional.
  • the cloud service 1601 includes various servers such as a server that stores and manages moving images, a server that distributes moving images to terminals, a server that obtains moving images from terminals, and a server that manages users (terminals) and billing.
  • An arbitrary network such as the Internet or a LAN.
  • the computer 1611 is configured by an information processing device such as a personal computer, a server, and a workstation.
  • the AV device 1612 is configured by an image processing device such as a television receiver, a hard disk recorder, a game device, a camera, and the like.
  • the portable information processing terminal 1613 includes, for example, a portable information processing device such as a notebook personal computer, a tablet terminal, a mobile phone, a smartphone, or the like.
  • the IoT device 1614 is configured by an arbitrary object that performs processing related to an image, such as a machine, a home appliance, furniture, other objects, an IC tag, a card-type device, and the like.
  • Each of these terminals has a communication function, and can connect to the cloud service 1601 (establish a session) and exchange information with the cloud service 1601 (that is, perform communication). Also, each terminal can communicate with other terminals. Communication between terminals may be performed via the cloud service 1601 or may be performed without the cloud service 1601.
  • the present technology when the present technology is applied to the network system 1600 as described above, when image (moving image) data is exchanged between terminals or between the terminal and the cloud service 1601, the image data is used in each embodiment. Encoding and decoding may be performed as described above. That is, the terminal (computer 1611 to IoT device 1614) and cloud service 1601 may have the functions of the above-described image encoding device 100 and image decoding device 200, respectively. By doing so, the terminal (computer 1611 to IoT device 1614) that transmits and receives image data and the cloud service 1601 can obtain the same effects as those of the embodiments described above with reference to FIGS. 11 to 32. it can.
  • encoded data may be multiplexed with the encoded data and transmitted or recorded, or may be encoded without being multiplexed with the encoded data. It may be transmitted or recorded as associated separate data.
  • the term "associate" means, for example, that one data can be used (linked) when one data is processed. That is, data associated with each other may be collected as one data or may be individual data. For example, information associated with encoded data (image) may be transmitted on a transmission path different from that of the encoded data (image). Further, for example, 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). Good. Note that this “association” may be a part of the data instead of the entire data. For example, 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.
  • combining”, “multiplexing”, “adding”, “integrating”, “include”, “store”, “insert”, “insert” ",” Insert “and the like mean that a plurality of things are combined into one, such as combining encoded data and metadata into one data, and one method of the above" association "is described. means.
  • the present disclosure may have the following configurations.
  • the one type of motion information is a second type of motion information having a different number of prediction components for affine transformation, and is generated based on the first type of motion information set in the encoded block.
  • a second mode for acquiring the second type of motion information as the motion information of the predetermined block, and a prediction unit that performs motion compensation in any one of a plurality of modes including:
  • An image processing apparatus comprising: (2)
  • the second type of motion information is motion information in which the number of prediction components for affine transformation is small from the first type of motion information.
  • the first type of motion information is motion information composed of a plurality of prediction components for affine transformation
  • the second type of motion information is motion information composed of one or a plurality of prediction components obtained by removing at least one prediction component from a plurality of prediction components constituting the first type of motion information,
  • the image processing device according to (1) or (2).
  • the first type of motion information is motion information having at least translational, rotational, and scaling prediction components
  • the second type of motion information is motion information obtained by removing at least one prediction component from translation, rotation, and scaling prediction components.
  • the second type of motion information is motion information having a prediction component of translation and rotation, and not having a prediction component of scaling.
  • the second type of motion information is motion information having a translational and scaling prediction component and not having a rotation prediction component.
  • a setting unit that sets mode information indicating any one of a plurality of modes including the first mode and the second mode, The image processing device according to any one of (1) to (6).
  • the prediction unit performs motion compensation in a mode selected based on the mode information, The image processing device according to (7).
  • the prediction unit includes: The first type of motion information having at least predicted components of translation, rotation, and scaling, wherein the first type of motion information is generated based on the first type of motion information set in an encoded block.
  • the second type of motion information having a translational and rotational prediction component and not having a scaling prediction component, and based on the first type of motion information set in an encoded block.
  • a third type of motion information having a translation and scaling prediction component and no rotation prediction component, which is generated based on the first type of motion information set in a coded block.
  • the prediction unit performs motion compensation in a mode selected based on the mode information, The image processing device according to (10).
  • the encoded block is a block adjacent to the predetermined block, The image processing device according to any one of (1) to (11).
  • the encoded block is a block of a frame different from the frame to which the predetermined block belongs, The image processing device according to any one of (1) to (11).
  • the one type of motion information is a second type of motion information having a different number of prediction components for affine transformation, and is generated based on the first type of motion information set in the encoded block.
  • performing a motion compensation on the reference image in any one of a plurality of modes including a second mode of acquiring the second type of motion information as motion information of a predetermined block.
  • the one type of motion information is a second type of motion information having a different number of prediction components for affine transformation, and is generated based on the first type of motion information set in the encoded block.
  • a second mode for acquiring the second type of motion information as the motion information of the predetermined block, and a prediction unit that performs motion compensation in any one of a plurality of modes including: Image processing program to function as
  • REFERENCE SIGNS LIST 100 image encoding device 101 control unit 119 prediction unit 200 image decoding device 211 decoding unit 216 prediction unit

Landscapes

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

Abstract

画像処理装置は、符号化済みのブロックに設定されたアフィン変換のための第1の種類の動き情報に基づき生成される第1の種類の動き情報を所定のブロックの動き情報として取得する第1のモードと、第1の種類の動き情報とはアフィン変換のための予測成分の数が異なる第2の種類の動き情報であって前記符号化済みのブロックに設定された第1の種類の動き情報に基づき生成される第2の種類の動き情報を前記所定のブロックの動き情報として取得する第2のモードと、を含む複数のモードのうちのいずれかのモードで動き補償を行う予測部(119)、を備える。

Description

画像処理装置、画像処理方法、及び画像処理プログラム
 本開示は、画像処理装置、画像処理方法、及び画像処理プログラムに関する。
 ITU-T(International Telecommunication Union Telecommunication Standardization Sector)の次世代ビデオ符号化を探索するJVET(Joint Video Exploration Team)では、2つの頂点の動きベクトルに基づいて参照画像をアフィン変換することによりインター予測処理(Affine motion compensation(MC) prediction)を行うことが提案されている(例えば、非特許文献1)。これにより、画像処理装置は、インター予測処理時に、画面間の並進移動(平行移動)だけでなく、回転方向の動き、及び、拡大や縮小といった形状の変化も補償して高精度の予測画像を生成することができる。
Jianle Chen等,"Algorithm Description of Joint Exploration Test Model 4(JVET-C1001)", JVET of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,26 May-1 June 2016
 インター予測処理では、符号化済みのブロックの動き情報に基づいてカレントブロックの動き情報を取得するマージモードが使用されることがある。しかし、符号化済みのブロックにアフィン変換のための動き情報が設定されている場合、マージモードを使うと高精度の予測画像が生成されない可能性がある。
 そこで、本開示では、高精度の予測画像を生成可能な画像処理装置、画像処理方法、及び画像処理プログラムを提案する。
 上記の課題を解決するために、本開示に係る一形態の画像処理装置は、符号化済みのブロックに設定されたアフィン変換のための第1の種類の動き情報に基づき生成される第1の種類の動き情報を所定のブロックの動き情報として取得する第1のモードと、第1の種類の動き情報とはアフィン変換のための予測成分の数が異なる第2の種類の動き情報であって前記符号化済みのブロックに設定された第1の種類の動き情報に基づき生成される第2の種類の動き情報を前記所定のブロックの動き情報として取得する第2のモードと、を含む複数のモードのうちのいずれかのモードで動き補償を行う予測部、を備える。
 本開示によれば、高精度の予測画像を生成できる。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載された何れかの効果であってもよい。
1つの動きベクトルに基づいて動き補償を行うインター予測処理を説明する図である。 1つの動きベクトルと回転角に基づいて動き補償を行うインター予測処理を説明する図である。 2つの動きベクトルに基づいて動き補償を行うインター予測処理を説明する図である。 3つの動きベクトルに基づいて動き補償を行うインター予測処理を説明する図である。 アフィン変換により、ブロックが並進移動する様子を示す図である。 アフィン変換により、ブロックがスキューする様子を示す図である。 アフィン変換により、ブロックが回転する様子を示す図である。 アフィン変換により、ブロックが拡大又は縮小する様子を示す図である。 QTBTを説明する図である。 画像内の各ブロックで発生する動きの第1の例を説明する図である。 画像内の各ブロックで発生する動きの第2の例を説明する図である。 画像内の各ブロックで発生する動きの第3の例を説明する図である。 画像内の各ブロックで発生する動きの第4の例を説明する図である。 本開示の画像処理装置の一例である画像符号化装置の構成例を示すブロック図である。 並進モードを説明する図である。 並進回転モードの第1の例を説明する図である。 並進回転モードの第2の例を説明する図である。 並進スケーリングモードの第1の例を説明する図である。 並進スケーリングモードの第2の例を説明する図である。 AMVPモードにおける動き補償モード情報とパラメータ情報を説明する図である。 マージモードにおける動き補償モード情報とパラメータ情報を説明する図である。 予測ベクトルの候補となる対象パラメータに含まれる動きベクトルを説明する図である。 画像符号化処理を説明するフローチャートである。 設定処理を説明するフローチャートである。 インター符号化処理を説明するフローチャートである。 カレントブロックと参照候補となる符号化済みのブロックとの位置関係を示す図である。 マージの振る舞いを示す図である。 マージの振る舞いを示す図である。 マージの振る舞いを示す図である。 マージの振る舞いを示す図である。 マージの振る舞いを示す図である。 マージの振る舞いを示す図である。 マージ処理を説明するフローチャートである。 マージの際に計算のために用いる変数を示す図である。 マージ処理の他の例を説明するフローチャートである。 マージ処理の他の例を説明するフローチャートである。 本開示の画像処理装置の一例である画像復号装置の構成例を示すブロック図である。 画像復号処理を説明するフローチャートである。 インター復号処理を説明するフローチャートである。 コンピュータのハードウエアの構成例を示すブロック図である。 テレビジョン装置の概略的な構成の一例を示すブロック図である。 携帯電話機の概略的な構成の一例を示すブロック図である。 記録再生装置の概略的な構成の一例を示すブロック図である。 撮像装置の概略的な構成の一例を示すブロック図である。 ビデオセットの概略的な構成の一例を示すブロック図である。 ビデオプロセッサの概略的な構成の一例を示すブロック図である。 ビデオプロセッサの概略的な構成の他の例を示すブロック図である。 ネットワークシステムの概略的な構成の一例を示すブロック図である。
 以下、本開示の前提及び本開示を実施するための形態(以下、実施の形態という)について説明する。なお、説明は以下の順序で行う。
 1.はじめに
   1-1.2パラメータMC予測処理
   1-2.1つの動きベクトルと回転角に基づいて動き補償を行うインター予測処理
   1-3.4パラメータアフィンMC予測処理
   1-4.6パラメータアフィンMC予測処理
   1-5.QTBT
   1-6.各ブロックで発生する動き
   1-7.マージモード
 2.第1実施の形態
   2-1.画像符号化装置の構成例
   2-2.並進モード
   2-3.並進回転モード
   2-4.並進スケーリングモード
   2-5.動き補償モード情報とパラメータ情報
   2-6.予測ベクトルの候補
   2-7.画像符号化装置の処理
   2-8.マージモードの詳細
   2-9.画像復号装置の構成例
   2-10.画像復号装置の処理
 3.第2実施の形態:コンピュータ
 4.第3実施の形態:テレビジョン装置
 5.第4実施の形態:携帯電話機
 6.第5実施の形態:記録再生装置
 7.第6実施の形態:撮像装置
 8.第7実施の形態:ビデオセット
   8-1.ビデオセットの構成例
   8-2.ビデオプロセッサの構成例
   8-3.ビデオプロセッサの他の構成例
   8-4.装置への適用例
 9.第8実施の形態:ネットワークシステム
 <<1.はじめに>>
 <1-1.2パラメータMC予測処理>
 図1は、1つの動きベクトルに基づいて動き補償を行うインター予測処理(以下、2パラメータMC予測処理という)を説明する図である。
 なお、以下では、特に断りの無い限り、画像(ピクチャ)の横方向(水平方向)をx方向とし、縦方向(垂直方向)をy方向とする。
 図1に示すように、2パラメータMC予測処理では、予測対象のブロック11(カレントブロック)に対して1つの動きベクトルvc(vcx,vcy)が決定される。そして、ブロック11を含むピクチャ10とは異なる時刻の参照画像内の、ブロック11から動きベクトルvcだけ離れた位置に存在するブロック11と同一のサイズのブロック13を、動きベクトルvcに基づいて並進移動することにより動き補償が行われ、ブロック11の予測画像が生成される。ここで、ブロックは、例えば、TB、TU、PU、CUである。
 即ち、2パラメータMC予測処理では、参照画像に対してアフィン変換が行われず、画面間の並進移動のみを補償した予測画像が生成される。また、インター予測処理に用いられるパラメータは、vcxとvcyの2つである。このようなインター予測処理は、AVC(Advanced Video Coding)やHEVC(High Efficiency Video Coding)などで採用されている。
 <1-2.1つの動きベクトルと回転角に基づいて動き補償を行うインター予測処理>
 図2は、1つの動きベクトルと回転角に基づいて動き補償を行うインター予測処理を説明する図である。
 図2に示すように、1つの動きベクトルと回転角に基づいて動き補償を行うインター予測処理では、予測対象のブロック11に対して1つの動きベクトルvc(vcx,vcy)と回転角θが決定される。そして、ブロック11を含むピクチャ10とは異なる時刻の参照画像内の、ブロック11から動きベクトルvcだけ離れた位置に回転角θの傾きで存在するブロック11と同一のサイズのブロック21を、動きベクトルvcと回転角θに基づいてアフィン変換することにより動き補償が行われ、ブロック11の予測画像が生成される。
 即ち、1つの動きベクトルと回転角に基づいて動き補償を行うインター予測処理では、1つの動きベクトルと回転角に基づいて参照画像に対してアフィン変換が行われる。これにより、画面間の並進移動と回転方向の動きを補償した予測画像が生成される。したがって、2パラメータMC予測処理に比べて、予測画像の精度が向上する。また、インター予測処理に用いられるパラメータは、vcx,vcy、及びθの3つである。
 <1-3.4パラメータアフィンMC予測処理>
 図3は、2つの動きベクトルに基づいて動き補償を行うインター予測処理(以下では、4パラメータアフィンMC予測処理という)を説明する図である。
 図3に示すように、4パラメータアフィンMC予測処理では、予測対象のブロック31に対して、ブロック31の左上の頂点K1における動きベクトルv0(v0x,v0y)と右上の頂点K2における動きベクトルv1(v1x,v1y)が決定される。
 そして、ブロック31を含むピクチャとは異なる時刻の参照画像内の、頂点K1から動きベクトルv0だけ離れた点K1’を左上の頂点とし、頂点K2から動きベクトルv1だけ離れた点K2’を右上の頂点とするブロック32を、動きベクトルv0と動きベクトルv1に基づいてアフィン変換することにより動き補償が行われ、ブロック31の予測画像が生成される。
 具体的には、ブロック31が所定のサイズのブロック(以下、単位ブロックという)に分割される。そして、各単位ブロックの動きベクトルv(vx,vy)が、動きベクトルv0(v0x,v0y)と動きベクトルv1(v1x,v1y)に基づいて、以下の式(1)及び式(2)により求められる。
Figure JPOXMLDOC01-appb-M000001
 なお、Wは、ブロック31のx方向のサイズであり、Hは、ブロック31のy方向のサイズである。したがって、ブロック31が正方形である場合、WとHは等しい。また、x,yは、それぞれ、単位ブロックのx方向、y方向の位置である。式(1)によれば、単位ブロックの位置に基づいて、単位ブロックの動きベクトルvが決定される。
 そして、参照画像内の、各単位ブロックから動きベクトルvだけ離れた単位ブロックと同一のサイズのブロックを、動きベクトルvに基づいて並進移動することにより、各単位ブロックの予測画像が生成され、その各単位ブロックの予測画像によって、ブロック31の予測画像が生成される。
 以上のように、4パラメータアフィンMC予測処理では、2つの動きベクトルに基づいて参照画像に対してアフィン変換が行われる。これにより、画面間の並進移動及び回転方向の動きだけでなく、拡大や縮小といった形状の変化を補償した予測画像が生成される。したがって、1つの動きベクトルと回転角に基づいて動き補償を行うインター予測処理に比べて、予測画像の精度が向上する。また、インター予測処理に用いられるパラメータは、v0x,v0y,v1x、及びv1yの4つである。このようなインター予測処理は、JEM(Joint Exploration Model)参照ソフトウエアで採用されている。
 なお、2つの動きベクトルに基づくアフィン変換は、アフィン変換前後のブロックが矩形であることを前提としたアフィン変換である。アフィン変換前後のブロックが矩形以外の四角形である場合にもアフィン変換を行うためには、3つの動きベクトルが必要である。
 <1-4.6パラメータアフィンMC予測処理>
 図4は、3つの動きベクトルに基づいて動き補償を行うインター予測処理(以下、6パラメータアフィンMC予測処理という)を説明する図である。
 図4に示すように、6パラメータアフィンMC予測処理では、予測対象のブロック31に対して、動きベクトルv0(v0x,v0y)と動きベクトルv1(v1x,v1y)だけでなく、左下の頂点K3の動きベクトルv2(v2x,v2y)が決定される。
 そして、ブロック31を含むピクチャとは異なる時刻の参照画像内の、頂点K1から動きベクトルv0だけ離れた点K1’を左上の頂点とし、頂点K2から動きベクトルv1だけ離れた点K2’を右上の頂点とし、頂点K3から動きベクトルv2だけ離れた点K3’を左下の頂点とするブロック42を、動きベクトルv0ないしv2に基づいてアフィン変換することにより動き補償が行われ、ブロック31の予測画像が生成される。
 即ち、6パラメータアフィンMC予測処理では、3つの動きベクトルに基づいて参照画像に対してアフィン変換が行われる。図5A~図5Dは、3つの動きベクトルに基づくアフィン変換前後のブロックを説明する図である。アフィン変換により、ブロック42が図5Aに示すように並進移動(Translation)したり、図5Bに示すようにスキュー(Skew)したり、図5Cに示すように回転(Rotation)したり、図5Dに示すように拡大又は縮小(Scaling)したりする。
 その結果、画面間の並進移動及び回転方向の動き、並びに、拡大や縮小、及びスキューといった形状の変化を補償した予測画像が生成される。なお、図5A~図5Dでは、アフィン変換前のブロック42を実線で示し、アフィン変換後のブロック42を点線で示している。
 これに対して、図3で説明した4パラメータアフィンMC予測処理では、予測画像に対して、スキューを補償することはできないが、画面間の並進移動及び回転方向の動き、並びに、拡大や縮小といった形状の変化を補償することはできる。したがって、4パラメータアフィンMC予測処理と6パラメータアフィンMC予測処理では、画面間の並進移動のみを補償する2パラメータMC予測処理に比べて、予測画像の精度が向上する。
 しかしながら、4パラメータアフィンMC予測処理では、インター予測処理におけるパラメータは、v0x,v0y,v1x、及びv1yの4つである。また、6パラメータアフィンMC予測処理では、インター予測処理に用いられるパラメータは、v0x,v0y,v1x,v1y,v2x、及びv2yの6つである。したがって、2パラメータMC予測処理に比べて、インター予測処理に用いられるパラメータの数が増加する。よって、インター予測処理の予測精度の向上とオーバーヘッドの抑制とは、トレードオフの関係になる。
 なお、JVETでは、制御信号により、4パラメータアフィンMC予測処理と6パラメータアフィンMC予測処理を切り替える技術が提案されている。
 <1-5.QTBT>
 MPEG2(Moving Picture Experts Group 2(ISO/IEC 13818-2))やAVCなどの旧来の画像符号化方式では、符号化処理は、マクロブロックと呼ばれる処理単位で実行される。マクロブロックは、16x16画素の均一なサイズを有するブロックである。これに対し、HEVCでは、符号化処理は、CUと呼ばれる処理単位(符号化単位)で実行される。CUは、最大符号化単位であるLCU(Largest Coding Unit)を再帰的に分割することにより形成される、可変的なサイズを有するブロックである。選択可能なCUの最大サイズは、64x64画素である。選択可能なCUの最小サイズは、8x8画素である。最小サイズのCUは、SCU(Smallest Coding Unit)と呼ばれる。なお、CUの最大サイズは、64x64画素に限定されず、より大きい128x128画素、256x256画素などのブロックサイズとしてもよい。
 このように、可変的なサイズを有するCUが採用される結果、HEVCでは、画像の内容に応じて画質及び符号化効率を適応的に調整することが可能である。予測符号化のための予測処理は、PUと呼ばれる処理単位で実行される。PUは、CUをいくつかの分割パタンのうちの1つで分割することにより形成される。また、PUは、輝度(Y)及び色差(Cb,Cr)毎のPB(Prediction Block)と呼ばれる処理単位から構成される。さらに、直交変換処理は、TU(Transform Unit)と呼ばれる処理単位で実行される。TUは、CU又はPUをある深さまで分割することにより形成される。また、TUは、輝度(Y)及び色差(Cb, Cr)毎のTB(Transform Block)と呼ばれる処理単位(変換ブロック)から構成される。
 以下においては、画像(ピクチャ)の部分領域や処理単位として「ブロック」を用いて説明する場合がある(処理部のブロックではない)。この場合の「ブロック」は、ピクチャ内の任意の部分領域を示し、その大きさ、形状、及び特性等は限定されない。つまり、この場合の「ブロック」には、例えば、TB、TU、PB、PU、SCU、CU、LCU(CTB)、サブブロック、マクロブロック、タイル、又はスライス等、任意の部分領域(処理単位)が含まれるものとする。
 図6は、JVETにおいて採用されたQTBT(Quad tree plus binary tree)を説明する図である。
 HEVCでは、1つのブロックを水平方向及び垂直方向に分割して4(=2x2)個のサブブロックにのみすることができる。これに対して、QTBTでは、1つのブロックを4(=2x2)個のサブブロックだけでなく、水平方向及び垂直方向のいずれか一方にのみ分割して2(=1x2,2x1)個のサブブロックにもすることができる。即ち、QTBTでは、CU(Coding Unit)の形成は、1つのブロックの4個又は2個のサブブロックへの分割を再帰的に繰り返すことにより行われ、結果として四分木(Quad-Tree)状、又は、2分木(Binary-Tree)状のツリー構造が形成される。したがって、CUの形状は、正方形だけでなく、長方形になる可能性がある。なお、以下では、PUとTUは、CUと同一であるものとする。
 <1-6.各ブロックで発生する動き>
 図7~図10は、画像内の各ブロックで発生する動きを説明する図である。
 図7の例では、画像61全体において、参照画像との間で並進移動、スケーリング(拡大や縮小)、及び回転方向の動きが発生している。この場合、画像61内の全てのブロック(例えば、CUやPU)のインター予測処理において、4パラメータアフィンMC予測処理を行い、画面間の並進移動、スケーリング、及び回転方向の動きが補償された予測画像を生成することが望ましい。
 これに対して、図8の例では、撮影時の手振れなどにより、画像62全体において、参照画像との間で並進移動と回転方向の動きが発生している。この場合、画像62内の全てのブロック(例えば、CUやPU)のインター予測処理において、4パラメータアフィンMC予測処理を行うことにより、画面間の並進移動と回転方向の動きだけでなく、スケーリングも補償する必要はない。
 また、図9の例では、撮影時のズームインやズームアウトにより、画像63全体において、参照画像との間で並進移動とスケーリングが発生している。この場合、画像63内の全てのブロック(例えば、CUやPU)のインター予測処理において、4パラメータアフィンMC予測処理を行うことにより、画面間の並進移動とスケーリングだけでなく、回転方向の動きも補償する必要はない。
 さらに、図10の例では、画像64が、参照画像との間で並進移動とスケーリングが発生している領域64A、並進移動と回転方向の動きが発生している領域64B、並進移動、スケーリング、及び回転方向の動きが発生している領域64C、及び並進移動のみが発生している領域64Dからなる。
 この場合、領域64C内のブロックのインター予測処理において4パラメータアフィンMC予測処理を行うことが望ましい。しかしながら、領域64A、領域64B、及び領域64D内のブロックのインター予測処理において、4パラメータアフィンMC予測処理を行って、画面間の並進移動、回転方向の動き、及びスケーリングの全てを補償する必要はない。
 以上のように、並進移動、回転方向の動き、及びスケーリングの全てが発生していないブロックのインター予測処理では、4パラメータアフィンMC予測処理を行い、画面間の並進移動、回転方向の動き、及びスケーリングの全てを補償する必要はない。したがって、全てのブロックのインター予測処理において、4パラメータアフィンMC予測処理を行うことは、無駄にオーバーヘッド(の符号量)を増加させ、符号化効率を悪化させることになる。
 そこで、本開示では、動き補償モードとして、2パラメータMC予測処理を行う並進モード、並進回転モード、並進スケーリングモード、及び4パラメータアフィンMC予測処理を行うアフィン変換モードを用意する。そして、画像処理装置は、各ブロックのインター予測処理において適切な動き補償モードで動き補償を行う。なお、並進回転モードとは、1つの動きベクトルvc(vcx,vcy)と回転角を示す回転角情報の3つのパラメータに基づいて並進移動と回転を行うことにより、並進移動と回転方向の動きを補償するモードである。並進スケーリングモードとは、1つの動きベクトルvc(vcx,vcy)とスケーリング率を示すスケーリング情報の3つのパラメータに基づいて並進移動とスケーリングを行うことにより、並進移動とスケーリングを補償するモードである。
 つまり、画像処理装置は、並進移動と回転方向の動きが発生しているブロックのインター予測処理では、並進回転モードの動き補償を行う。また、画像処理装置は、並進移動とスケーリングが発生しているブロックのインター予測処理において、並進スケーリングモードの動き補償を行う。これにより、これらのブロックに対するインター予測処理に用いられるパラメータの数が、4パラメータアフィンMC予測処理に比べて少ない3つになる。したがって、全てのブロックに対して4パラメータアフィンMC予測処理が行われる場合に比べて、オーバーヘッドが削減され、符号化効率が向上する。
 なお、上述の説明では、アフィン変換モードは、4パラメータアフィンMC予測処理を行うモードであるものとしたが、アフィン変換モードは、6パラメータアフィンMC予測処理を行うモードであってもよい。
 <1-7.マージモード>
 なお、動き補償のモードには通常の動き補償のモードに加えてマージモードがある。マージモードとは、符号化済みブロックの動き情報(動きパラメータ)に基づいて生成される動き情報(動きパラメータ)に基づいてインター予測処理を行う動き補償モードである。符号化済みのブロックにアフィン変換のための動き情報が設定されている場合、マージモードを使うと予測成分(例えば、並進移動、回転、スケーリングの成分)が多すぎて逆に高精度の予測画像が生成されない可能性がある。
 例えば、参照先となる符号化済みブロックの動き情報がアフィン変換モードの4パラメータであるとする。この場合、処理対象のブロックの動き情報もアフィン変換モードの4パラメータとなるが、必ずしも処理対象のブロックの正しい動きモデルがアフィン変換モードであるとは限らない。処理対象のブロックの正しい動きモデルが、並進移動と回転の予測成分から構成される並進回転モードや、並進移動とスケーリングの予測成分から構成される並進スケーリングモードであることも想定しうる。この場合、動きパラメータの予測精度が低下する恐れがある。
 そこで、本開示では、アフィン変換のマージモード(マージ&アフィン変換モード)に、予測成分を削減して強制的に並進回転モードや並進スケーリングモードとする第2、第3のマージモード(強制回転モード、強制スケーリングモード)を用意する。これにより、参照先となる符号化済みブロックの動き情報がアフィン変換モードの動き補償モードであっても、高精度の予測画像を生成できるようにする。
 以下、本開示の画像符号化装置を説明する。
 <<2.第1実施の形態>>
 <2-1.画像符号化装置の構成例>
 図11は、本開示の画像処理装置の一例である画像符号化装置100の構成例を示すブロック図である。図11の画像符号化装置100は、AVCやHEVCのように、画像とその予測画像との予測残差を符号化する装置である。例えば、画像符号化装置100は、HEVCの技術や、JVETにて提案された技術を実装している。
 なお、図11においては、処理部やデータの流れ等の主なものを示しており、図11に示されるものが全てとは限らない。つまり、画像符号化装置100において、図11においてブロックとして示されていない処理部が存在したり、図11において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
 図11の画像符号化装置100は、制御部101、演算部111、変換部112、量子化部113、符号化部114、逆量子化部115、逆変換部116、演算部117、フレームメモリ118、及び予測部119を有する。画像符号化装置100は、入力されるフレーム単位の動画像であるピクチャに対してブロック(例えば、CU)ごとに符号化を行う。
 具体的には、画像符号化装置100の制御部101(設定部)は、外部からの入力及びRDO(Rate-Distortion Optimization)等に基づいて、符号化パラメータ(ヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfo等)を設定する。
 ヘッダ情報Hinfoは、例えば、ビデオパラメータセット(VPS(Video Parameter Set))、シーケンスパラメータセット(SPS(Sequence Parameter Set))、ピクチャパラメータセット(PPS(Picture Parameter Set))、スライスヘッダ(SH)等の情報を含む。例えば、ヘッダ情報Hinfoには、画像サイズ(横幅PicWidth、縦幅PicHeight)、ビット深度(輝度bitDepthY、色差bitDepthC)、CUサイズの最大値MaxCUSize/最小値MinCUSizeなどを規定する情報が含まれる。もちろん、ヘッダ情報Hinfoの内容は任意であり、上述した例以外のどのような情報がこのヘッダ情報Hinfoに含まれるようにしてもよい。
 予測情報Pinfoには、例えば、ブロック(例えば、CUやPU)の形成時の各分割階層における水平方向又は垂直方向の分割の有無を示すsplit flagが含まれる。また、予測情報Pinfoには、ブロックごとに、そのブロックの予測処理がイントラ予測処理であるか、又は、インター予測処理であるかを示すモード情報pred_mode_flagが含まれる。
 モード情報pred_mode_flagがインター予測処理を示す場合、予測情報Pinfoには、Merge flag、動き補償モード情報、パラメータ情報、参照画像を特定する参照画像特定情報などが含まれる。Merge flagは、インター予測処理のモードが、マージモードであるか、又は、AMVPモードであるかを示す情報である。マージモードとは、マージ対象となる符号化済みのブロック(例えば、隣接ブロック等の周辺ブロック)の動き補償に用いられたパラメータ(動きベクトル、回転角情報、スケーリング情報)に基づいて生成されるパラメータ(以下、対象パラメータという)を含む候補の中から選択された予測パラメータに基づいてインター予測処理を行うモードである。AMVPモードとは、処理対象のブロックのパラメータに基づいてインター予測処理を行うモードである。Merge flagは、マージモードであることを示す場合1であり、AMVPモードであることを示す場合0である。
 動き補償モード情報は、動き補償モードが、並進モード、アフィン変換モード、並進回転モード、又は並進スケーリングモードであることを示す情報である。本実施形態では、マージモードのアフィン変換モードは、通常アフィン変換モード、並進回転モード、及び並進スケーリングモードに分かれる。
 パラメータ情報は、Merge flagが1である場合、対象パラメータを含む候補の中からインター予測処理に用いるパラメータを、予測パラメータ(予測ベクトル、予測回転角情報、予測スケーリング情報)として特定する情報である。また、Merge flagが0である場合、予測パラメータを特定する情報、及び、予測パラメータと処理対象のブロックのパラメータとの差分である。
 モード情報pred_mode_flagがイントラ予測処理を示す場合、予測情報Pinfoには、そのイントラ予測処理のモードであるイントラ予測モードを示すイントラ予測モード情報などが含まれる。もちろん、予測情報Pinfoの内容は任意であり、上述した例以外のどのような情報がこの予測情報Pinfoに含まれるようにしてもよい。
 変換情報Tinfoには、TBのサイズを示すTBSizeなどが含まれる。もちろん、変換情報Tinfoの内容は任意であり、上述した例以外のどのような情報がこの変換情報Tinfoに含まれるようにしてもよい。
 演算部111は、入力されるピクチャを順に符号化対象のピクチャとし、予測情報Pinfoのsplit flagに基づいて、符号化対象のピクチャに対して符号化対象のブロック(CU,PU,TU)を設定する。演算部111は、符号化対象のブロックの画像I(カレントブロック)から、予測部119から供給されたブロックの予測画像P(予測ブロック)を減算して予測残差Dを求め、それを変換部112に供給する。
 変換部112は、制御部101から供給される変換情報Tinfoに基づいて、演算部111から供給される予測残差Dに対して直交変換等を行い、変換係数Coeffを導出する。変換部112は、変換係数Coeffを量子化部113に供給する。
 量子化部113は、制御部101から供給される変換情報Tinfoに基づいて、変換部112から供給される変換係数Coeffをスケーリング(量子化)し、量子化変換係数レベルlevelを導出する。量子化部113は、量子化変換係数レベルlevelを符号化部114及び逆量子化部115に供給する。
 符号化部114は、量子化部113から供給される量子化変換係数レベルlevel等を所定の方法で符号化する。例えば、符号化部114は、シンタックステーブルの定義に沿って、制御部101から供給される符号化パラメータ(ヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfo等)と、量子化部113から供給される量子化変換係数レベルlevelを、各シンタックス要素のシンタックス値へ変換する。そして、符号化部114は、各シンタックス値を符号化(例えば、CABAC(Context-based Adaptive Binary Arithmetic Coding)などの算術符号化)する。
 このとき、符号化部114は、マージ対象ブロック(例えば、隣接ブロック等の周囲ブロック)の動き補償モード情報に基づいてCABACの確率モデルのコンテキストを切り替え、マージ対象ブロックの動き補償モード情報の確率が高くなるようにCABACの確率モデルを設定して、ブロックの動き補償モード情報を符号化する。
 即ち、図10に示したように、参照画像との間で並進移動とスケーリングが発生している領域64A、並進移動と回転方向の動きが発生している領域64B、並進移動、スケーリング、及び回転方向の動きが発生している領域64C、及び並進移動のみが発生している領域64Dは、画像64内にまとまって存在していると推測される。したがって、あるブロックとマージ対象ブロックの動き補償モード情報は同一である可能性が高い。
 例えば、あるブロックのマージ対象ブロックが領域64A内に存在し、動き補償モードとして並進スケーリングモードが選択されている場合、そのブロックも領域64A内に存在し、動き補償モードとして並進スケーリングモードが選択される可能性が高い。また、あるブロックのマージ対象ブロックが領域64B内に存在し、動き補償モードとして並進回転モードが選択されている場合、そのブロックも領域64B内に存在し、動き補償モードとして回転スケーリングモードが選択される可能性が高い。
 さらに、あるブロックのマージ対象ブロックが領域64C内に存在し、動き補償モードとしてアフィン変換モードが選択されている場合、そのブロックも領域64C内に存在し、動き補償モードとしてアフィン変換モードが選択される可能性が高い。また、あるブロックのマージ対象ブロックが領域64D内に存在し、動き補償モードとして並進モードが選択されている場合、そのブロックも領域64D内に存在し、動き補償モードとして並進モードが選択される可能性が高い。
 よって、符号化部114は、マージ対象ブロックの動き補償モード情報の確率が高くなるように、CABACの確率モデルを設定してブロックの動き補償モード情報を符号化する。これにより、オーバーヘッドを削減し、符号化効率を改善することができる。
 なお、マージ対象ブロックの数が複数である場合、符号化部114は、マージ対象ブロックの動き補償モード情報ごとの数に基づいてCABACの確率モデルを設定するようにしてもよい。また、符号化部114は、動き補償モード情報に基づいて、CABACの確率モデルのコンテキストを切り替えるのではなく、動き補償モード情報に割り当てる符号(ビット列)を切り替えるようにしてもよい。
 符号化部114は、例えば、符号化の結果得られる各シンタックス要素のビット列である符号化データを多重化し、符号化ストリームとして出力する。
 逆量子化部115は、制御部101から供給される変換情報Tinfoに基づいて、量子化部113から供給される量子化変換係数レベルlevelの値をスケーリング(逆量子化)し、逆量子化後の変換係数Coeff_IQを導出する。逆量子化部115は、その変換係数Coeff_IQを逆変換部116に供給する。この逆量子化部115により行われる逆量子化は、量子化部113により行われる量子化の逆処理であり、後述する画像復号装置において行われる逆量子化と同様の処理である。
 逆変換部116は、制御部101から供給される変換情報Tinfoに基づいて、逆量子化部115から供給される変換係数Coeff_IQに対して逆直交変換等を行い、予測残差D’を導出する。逆変換部116は、その予測残差D’を演算部117に供給する。この逆変換部116により行われる逆直交変換は、変換部112により行われる直交変換の逆処理であり、後述する画像復号装置において行われる逆直交変換と同様の処理である。
 演算部117は、逆変換部116から供給される予測残差D’と、予測部119より供給される、その予測残差D’に対応する予測画像Pとを加算して局所的な復号画像Recを導出する。演算部117は、その局所的な復号画像Recをフレームメモリ118に供給する。
 フレームメモリ118は、演算部117より供給される局所的な復号画像Recを用いてピクチャ単位の復号画像を再構築し、フレームメモリ118内のバッファへ格納する。フレームメモリ118は、予測部119により指定される復号画像を参照画像としてバッファより読み出し、予測部119に供給する。また、フレームメモリ118は、復号画像の生成に係るヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfoなどを、フレームメモリ118内のバッファに格納するようにしても良い。
 予測部119は、イントラ予測部119aと、動き補償部119bと、動き検出部119cと、を備える。
 イントラ予測部119aは、予測情報Pinfoのモード情報pred_mode_flagがイントラ予測処理を示す場合に動作する。イントラ予測部119aは、フレームメモリ118に格納された符号化対象のCUと同一時刻の復号画像を参照画像として取得する。そして、予測部119は、参照画像を用いて、符号化対象のブロックに対して、イントラ予測モード情報が示すイントラ予測モードのイントラ予測処理を行う。
 動き補償部119bと動き検出部119cは、モード情報pred_mode_flagがインター予測処理を示す場合に動作する。動き補償部119bと動き検出部119cは、参照画像特定情報に基づいて、フレームメモリ118に格納された符号化対象のCUとは異なる時刻の復号画像を参照画像として取得する。動き補償部119bと動き検出部119cは、Merge flag、動き補償モード情報、及びパラメータ情報に基づいて、参照画像を用いて、符号化対象のブロックのインター予測処理を行う。
 具体的には、動き補償部119bと動き検出部119cは、動き補償モード情報が並進モードを示す場合、1つの動きベクトルに基づいて、参照画像に対して並進移動の補償を行うことにより、並進モードのインター予測処理を行う。なお、Merge flagが1である場合、インター予測処理に用いられる1つの動きベクトルは、パラメータ情報により特定される1つの予測ベクトルである。一方、Merge flagが0である場合、インター予測処理に用いられる1つの動きベクトルは、パラメータ情報により特定される1つの予測ベクトルとパラメータ情報に含まれる差分とを加算することにより得られる1つの動きベクトルである。
 また、動き補償部119bと動き検出部119cは、動き補償モード情報がアフィン変換モードを示す場合、2つの動きベクトルに基づくアフィン変換を参照画像に対して行うことにより、並進移動、回転方向の動き、及びスケーリングを補償して、アフィン変換モードのインター予測処理を行う。なお、Merge flagが1である場合、インター予測処理に用いられる2つの動きベクトルは、パラメータ情報により特定される2つの予測ベクトルである。一方、Merge flagが0である場合、インター予測処理に用いられる2つの動きベクトルは、パラメータ情報により特定される2つの予測ベクトルと、各予測ベクトルに対応してパラメータ情報に含まれる差分とをそれぞれ加算することにより得られる2つの動きベクトルである。
 さらに、動き補償部119bと動き検出部119cは、動き補償モード情報が並進回転モードを示す場合、1つの動きベクトルと回転角情報とに基づいて、参照画像に対して並進移動と回転方向の動きの補償を行うことにより、並進回転モードのインター予測処理を行う。なお、Merge flagが1である場合、インター予測処理に用いられる1つの動きベクトルと回転角情報は、パラメータ情報により特定される予測ベクトルと予測回転角情報である。一方、Merge flagが0である場合、インター予測処理に用いられる1つの動きベクトルは、パラメータ情報により特定される1つの予測ベクトルとパラメータ情報に含まれる差分とを加算することにより得られる1つの動きベクトルである。また、回転角情報は、パラメータ情報により特定される予測回転角情報とパラメータ情報に含まれる差分とを加算することにより得られる1つの回転角情報である。
 動き補償部119bと動き検出部119cは、動き補償モード情報が並進スケーリングモードを示す場合、1つの動きベクトルとスケーリング情報とに基づいて、参照画像に対して並進移動とスケーリングの補償を行うことにより、並進スケーリングモードのインター予測処理を行う。なお、Merge flagが1である場合、インター予測処理に用いられる1つの動きベクトルとスケーリング情報は、パラメータ情報により特定される予測ベクトルと予測スケーリング情報である。一方、Merge flagが0である場合、インター予測処理に用いられる1つの動きベクトルは、パラメータ情報により特定される1つの予測ベクトルとパラメータ情報に含まれる差分とを加算することにより得られる1つの動きベクトルである。また、スケーリング情報は、パラメータ情報により特定される予測スケーリング情報とパラメータ情報に含まれる差分とを加算することにより得られる1つのスケーリング情報である。
 予測部119は、イントラ予測処理又はインター予測処理の結果生成される予測画像Pを演算部111や演算部117に供給する。
 <2-2.並進モード>
 図12は、並進モードを説明する図である。
 図12に示すように、動き補償モードが並進モードである場合、予測部119は、処理対象のブロック31の左上の頂点K1の動きベクトルv0に基づいて、参照画像内の、ブロック31から動きベクトルv0だけ離れた点K1’を左上の頂点とするブロック31と同一のサイズのブロック133を並進移動する。そして、予測部119は、並進移動後のブロック133をブロック31の予測画像とする。この場合、インター予測処理に用いられるパラメータは、v0xとv0yの2つである。
 <2-3.並進回転モード>
 図13は並進回転モードを説明する図である。
 図13に示すように、動き補償モードが並進回転モードである場合、予測部119は、処理対象のブロック31の頂点K1の動きベクトルv0と回転角情報としての回転角θに基づいて、参照画像内の、ブロック31から動きベクトルv0だけ離れた点K1’を左上の頂点とし、回転角θだけ回転したブロック31と同一のサイズのブロック134を並進移動及び回転する。そして、予測部119は、並進移動及び回転後のブロック134をブロック31の予測画像とする。この場合、インター予測処理に用いられるパラメータは、v0x,v0y、及びθの3つである。
 なお、図13の例では、回転角情報を、回転角θとしたが、図14に示すように、頂点K1の動きベクトルv0と頂点K2の動きベクトルv1の垂直方向の差分dvyとしてもよい。即ち、θが小さい場合、Wsinθは差分dvyで近似できるため、回転角θを差分dvyに置き換えてもよい。この場合、動き補償時に三角関数の計算を行う必要がなく、動き補償時の計算量を削減することができる。
 <2-4.並進スケーリングモード>
 図15は、並進スケーリングモードを説明する図である。
 図15に示すように、動き補償モードが並進スケーリングモードである場合、予測部119は、処理対象のブロック31の頂点K1の動きベクトルv0とスケーリング情報としてのスケーリング率Sに基づいて、参照画像内の、ブロック31から動きベクトルv0だけ離れた点K1’を左上の頂点とするブロック31のS倍のサイズのブロック135を、並進移動及び1/S倍にスケーリングする。そして、予測部119は、並進移動及びスケーリング後のブロック135をブロック31の予測画像とする。この場合、インター予測処理に用いられるパラメータは、v0x,v0y、及びSの3つである。
 なお、スケーリング率Sとは、ブロック31のサイズWをS1とし、ブロック135のx方向のサイズをS2としたとき、S2/S1で表される。サイズS1は既知であるため、スケーリング率Sを用いて、サイズS1からサイズS2を求めることができる。
 図15の例では、スケーリング情報を、スケーリング率Sとしたが、図16に示すように、頂点K1の動きベクトルv0と頂点K2の動きベクトルv1の水平方向の差分dvxであってもよい。即ち、サイズS2をS1+dvxで近似するようにしてもよい。この場合、ブロック135の横方向のサイズS2をサイズS1と差分dvxの加算のみで求めることができ、動き補償時の計算量を削減することができる。また、スケーリング率Sは、(S1+dvx)/S1になる。
 <2-5.動き補償モード情報とパラメータ情報>
 図17は、AMVPモードにおける動き補償モード情報(AMVPモード情報)とパラメータ情報を説明する図である。なお、以下の説明では、並進回転モードのことを、単に「回転モード」ということがある。また、並進スケーリング情報のことを、単に「スケーリングモード」ということがある。
 AMVPモードでは、動き補償モードとして、並進モード、アフィン変換モード、回転モード、スケーリングモードがある。図17に示すように、動き補償モード情報(AMVPモード情報)は、affine_flag,rotation_flag、及び、scaling_flagにより構成される。
 affine_flagは、動き補償モードが、通常の並進モード以外のアフィン変換モード、スケーリングモード、又は回転モードであるかどうかを示す情報である。affine_flagは、動き補償モードが、アフィン変換モード、回転モード、又はスケーリングモードであることを示す場合1である。一方、affine_flagは、動き補償モードが、アフィン変換モード、回転モード、及びスケーリングモードではないことを示す場合、即ち動き補償モードが並進モードであることを示す場合、0である。
 rotation_flagは、動き補償モードが、回転モードであるかどうかを示す情報であり、affine_flagが1である場合に設定される。rotation_flagは、動き補償モードが、回転モードである場合、1に設定される。一方、rotation_flagは、動き補償モードが、回転モードではない場合、すなわち、動き補償モードが、スケーリングモード又はアフィン変換モードである場合、0に設定される。
 scaling_flagは、動き補償モードがスケーリングモードであるかどうかを示す情報であり、rotation_flagが0である場合に設定される。scaling_flagは、動き補償モードがスケーリングモードである場合、1に設定され、動き補償モードが、スケーリングモードではない場合、すなわち、動き補償モードが、アフィン変換モードである場合、0に設定される。
 また、動き補償モードが並進モードであるとき、処理対象のブロックの1つの動きベクトルに対応する予測ベクトルを特定する情報がパラメータ情報のrefidx0として設定され、その1つの動きベクトルと予測ベクトルとの差分がパラメータ情報のmvd0として設定される。
 動き補償モードがアフィン変換モードであるとき、並進モードであるときと同様に、パラメータ情報のrefidx0とmvd0が設定される。また、処理対象のブロックのもう1つの動きベクトルに対応する予測ベクトルを特定する情報がパラメータ情報のrefidx1として設定され、その動きベクトルと予測ベクトルとの差分がパラメータ情報のmvd1として設定される。
 動き補償モードがスケーリングモードであるとき、並進モードであるときと同様に、パラメータ情報のrefidx0とmvd0が設定される。また、処理対象のブロックのスケーリング情報に対応する予測スケーリング情報を特定する情報がパラメータ情報のrefidx1として設定され、そのスケーリング情報と予測スケーリング情報との差分がパラメータ情報のdsとして設定される。
 したがって、スケーリング情報がスケーリング率Sを表す場合、dsは、処理対象のブロックのスケーリング率Sと予測スケーリング情報としてのスケーリング率Sとの差分dSである。一方、スケーリング情報が差分dvxを表す場合、dsは、処理対象のブロックの差分dvxと予測スケーリング情報としての差分dvxとの差分mvd1.xである。
 動き補償モードが回転モードであるとき、並進モードであるときと同様に、パラメータ情報のrefidx0とmvd0が設定される。また、処理対象のブロックの角度情報に対応する予測角度情報を特定する情報がrefidx1として設定され、その角度情報と予測角度情報との差分がdrとして設定される。
 したがって、角度情報が回転角θを表す場合、drは、処理対象のブロックの回転角θと予測角度情報としての回転角θ´との差分dθである。一方、角度情報が差分dvyを表す場合、drは、処理対象のブロックの差分dvyと予測角度情報としての差分dvyとの差分mvd1.yである。
 図18は、マージモードにおける動き補償モード情報(マージモード情報)とパラメータ情報を説明する図である。マージモードでは、動き補償モードとして、並進モード、アフィン変換モード、回転モード、スケーリングモードがある。なお、マージモードでは、アフィン変換モードに、通常のアフィン変換モードに加えて、回転モード(以下、強制回転モードともいう。)と、スケーリングモード(以下、強制スケーリングモードともいう。)がある。強制回転モードは、アフィン変換モードの複数の予測成分(並進移動、回転、スケーリング)のうち、スケーリングの予測成分を削減して強制的に回転モードにする動き補償モードである。また、強制スケーリングモードは、アフィン変換モードの複数の予測成分(並進移動、回転、スケーリング)のうち、スケーリングの予測成分を削減して強制的に回転モードにする動き補償モードである。
 図18に示すように、動き補償モード情報(マージモード情報)は、affine_flag,rotation_flag、及び、scaling_flagにより構成される。
 affine_flagは、動き補償モードが、通常の並進モード以外のアフィン変換モード、スケーリングモード、又は回転モードであるかどうかを示す情報である。affine_flagは、動き補償モードが、アフィン変換モード、回転モード、又はスケーリングモードであることを示す場合1である。一方、affine_flagは、動き補償モードが、アフィン変換モード、回転モード、及びスケーリングモードではないことを示す場合、即ち動き補償モードが並進モードであることを示す場合、0である。
 rotation_flagは、動き補償モードが、回転モード、又は強制回転モードであるかどうかを示す情報であり、affine_flagが1である場合に設定される。rotation_flagは、動き補償モードが、回転モード、又は強制回転モードである場合、1に設定される。一方、rotation_flagは、動き補償モードが、回転モード及び強制回転モードではない場合、すなわち、動き補償モードが、スケーリングモード、強制スケーリングモード、又は通常アフィン変換モードである場合、0に設定される。
 scaling_flagは、動き補償モードがスケーリングモード、又は強制スケーリングモードであるかどうかを示す情報であり、rotation_flagが0である場合に設定される。scaling_flagは、動き補償モードがスケーリングモード、又は強制スケーリングモードである場合、1に設定され、動き補償モードが、スケーリングモード、及び強制スケーリングモードではない場合、すなわち、動き補償モードが、通常アフィン変換モード、回転モード、及び強制回転モードである場合、0に設定される。
なお、インター予測処理のモードがマージモードである場合、パラメータ情報としては、mvd0,mvd1,ds,drは設定されず、refidx0,refidx1が、AMVPモードの場合と同様に設定される。
 <2-6.予測ベクトルの候補>
 図19は、予測ベクトルの候補となる対象パラメータに含まれる動きベクトル(以下、候補ベクトルという)を説明する図である。
 予測部119は、図19の予測対象のブロック151の左上の頂点K1の動きベクトルv0の予測ベクトルpv0の候補となる候補ベクトルを、頂点K1を頂点とするブロック151の左上の符号化済みのブロックであるブロックa、上側の符号化済みのブロックであるブロックb、又は左側の符号化済みのブロックであるブロックcの動きベクトルに基づいて生成する。
 また、予測部119は、ブロック151の右上の頂点K2の動きベクトルv1の予測ベクトルpv1の候補となる候補ベクトルを、頂点K2を頂点とするブロック151の上側の符号化済みのブロックであるブロックd、又は、右上側の符号化済みのブロックであるブロックeの動きベクトルに基づいて生成する。なお、ブロックaないしeの動きベクトルは、予測部119において保持される、各ブロックに1つの動きベクトルである。
 以上により、予測ベクトルpv0とpv1の候補となる候補ベクトルの生成に用いられる動きベクトルの組み合わせの候補は、6(=3×2)通りある。予測部119は、この6通りの組み合わせの候補のうち、以下の式(3)により求められるDVが最も小さくなる組み合わせを、予測ベクトルpv0とpv1の候補となる候補ベクトルの生成に用いられる動きベクトルの組み合わせとして選択する。
Figure JPOXMLDOC01-appb-M000002
 なお、v0x´,v0y´は、予測ベクトルpv0の生成に用いられるブロックaないしcのいずれかのx方向、y方向の動きベクトルである。v1x´,v1y´は、予測ベクトルpv1の生成に用いられるブロックd及びeのいずれかのx方向、y方向の動きベクトルである。v2x´,v2y´は、ブロック151の頂点K3を頂点とするブロック151の左側の符号化済みのブロックであるブロックf、及び、左下側の符号化済みのブロックであるブロックgのいずれかのx方向、y方向の動きベクトルである。ブロックf及びgの動きベクトルは、予測部119において保持される、各ブロックに1つの動きベクトルである。
 式(3)によれば、動きベクトルv0´(v0x´,v0y´)ないしv2´(v2x´,v2y´)に基づくアフィン変換により、2つの動きベクトルに基づくアフィン変換では不可能なスキュー以外が行われる場合、DVが小さくなる。
 <2-7.画像符号化装置の処理>
 図20は、画像符号化装置100が実行する画像符号化処理を説明するフローチャートである。
 制御部101は、外部からの入力及びRDO等に基づいて、符号化パラメータ(ヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfo等)を設定する(ステップS11)。制御部101は、設定された符号化パラメータを各ブロックへ供給する。制御部101は、画像符号化装置100の設定部として機能する。
 予測部119は、現在のスライスがI-SLICEか否か判別する(ステップS12)。I-SLICEの場合(ステップS12:Yes)、予測部119は、ステップS15に処理を進める。予測部119は、現在のスライスがI-SLICEか否か判別する(ステップS12)。I-SLICEでない場合(ステップS12:No)、予測部119は、現在のモードがスキップモードか否か判別する(ステップS13)。スキップモードの場合(ステップS13:Yes)、予測部119は、ステップS18に処理を進める。
 予測部119は、現在のモードがインターモードか否か判別する(ステップS14)。例えば、予測部119は、予測情報Pinfoのモード情報pred_mode_flagが、インター予測処理を示すかどうかを判定する。インターモードでない場合(ステップS14:No)、予測部119のイントラ予測部119aは、イントラ符号化処理を実行する(ステップS15)。
 インターモードの場合(ステップS14:Yes)、予測部119は、予測情報PinfoのMerge flagが1であるかどうかを判定する(ステップS16)。Merge flagが1でない場合(ステップS16:No)、予測部119は、AMVPモード符号化処理を行う(ステップS17)。AMVPモード符号化処理は、AMVPモードのインター予測処理により生成された予測画像Pを用いて符号化対象の画像を符号化する処理である。AMVPモード符号化処理については後述する。AMVPモード符号化処理の終了後、画像符号化処理は終了する。
 Merge flagが1の場合(ステップS16:Yes)、予測部119は、affine_flagが1であるかどうかを判定する(ステップS18)。affine_flagが1でない場合(ステップS18:No)、予測部119は、並進モード符号化処理を行う(ステップS19)。並進モード符号化処理は、インター符号化処理の一種であり、並進モードのインター予測処理により生成された予測画像Pを用いて符号化対象の画像を符号化する処理である。並進モード符号化処理については後述のインター符号化処理の説明の箇所で説明する。並進モード符号化処理の終了後、画像符号化処理は終了する。
 affine_flagが1の場合(ステップS18:Yes)、予測部119は、rotation_flagが1であるかどうかを判定する(ステップS20)。rotation_flagが1の場合(ステップS20:Yes)、予測部119は、回転モード符号化処理を行う(ステップS21)。回転モード符号化処理は、インター符号化処理の一種であり、回転モード或いは強制回転モードのインター予測処理により生成された予測画像Pを用いて符号化対象の画像を符号化する処理である。回転モード符号化処理については後述のインター符号化処理の説明の箇所で説明する。回転モード符号化処理の終了後、画像符号化処理は終了する。
 rotation_flagが1でない場合(ステップS20:No)、予測部119は、scaling_flagが1であるかどうかを判定する(ステップS22)。scaling_flagが1の場合(ステップS22:Yes)、予測部119は、回転モード符号化処理を行う(ステップS23)。スケーリングモード符号化処理は、インター符号化処理の一種であり、スケーリングモード或いは強制スケーリングモードのインター予測処理により生成された予測画像Pを用いて符号化対象の画像を符号化する処理である。スケーリングモード符号化処理については後述のインター符号化処理の説明の箇所で説明する。スケーリングモード符号化処理の終了後、画像符号化処理は終了する。
 scaling_flagが1でない場合(ステップS22:No)、予測部119は、通常アフィン変換モード符号化処理を行う(ステップS24)。通常アフィン変換モード符号化処理は、インター符号化処理の一種であり、通常のアフィン変換モードのインター予測処理により生成された予測画像Pを用いて符号化対象の画像を符号化する処理である。通常アフィン変換モード符号化処理については後述のインター符号化処理の説明の箇所で説明する。通常アフィン変換モード符号化処理の終了後、画像符号化処理は終了する。
 次に、設定処理を説明する。図21は、図20のステップS11の処理のうちの、Merge flagと動き補償モード情報を設定する設定処理を説明するフローチャートである。この設定処理は、インター予測処理モードの設定のための処理であり、例えば、ブロック単位(PU単位やCU単位)で実行される。なお、以下の説明では、AMVPモードのアフィン変換モードのことを通常アフィン変換モードという。
 制御部101は、未だ動き補償モードとして設定されていないモード(並進モード、通常アフィン変換モード、回転モード、強制回転モード、スケーリングモード、又は強制スケーリングモード)を動き補償モードとして設定する(ステップS31)。
 具体的には、まだ並進モードが動き補償モードとして設定されていない場合、制御部101は、affine_flagを0に設定する。まだ、通常アフィン変換モードが動き補償モードとして設定されていない場合、制御部101は、affine_flagを1に設定し、rotation_flag及びscaling_flagを0に設定する。また、回転モード及び強制回転モードが動き補償モードとして設定されていない場合、affine_flag及びrotation_flagを1に設定し、scaling_flagを0に設定する。また、スケーリングモード及び強制スケーリングモードが動き補償モードとして設定されていない場合、affine_flag及びscaling_flagを1に設定し、rotation_flagを0に設定する。
 制御部101は、各ブロックを制御して、処理対象のブロック(PUやCU)に対して、候補となるMerge flag及び動き補償モード情報以外の予測情報Pinfoごとにンター符号化処理(マージモード符号化処理、及びAMVPモード符号化処理)を行い、RDコストを計算する(ステップS32)。なお、RDコストの計算は、符号化の結果得られる発生ビット量(符号量)、復号画像のSSE(Error Sum of Squares)などに基づいて行われる。
 制御部101は、ステップS31で全ての動き補償モードを設定したかどうかを判定する(ステップS33)。全ての動き補償モードを選択していない場合(ステップS33:No)、制御部101は、ステップS31に処理を戻す。
 一方、全ての動き補償モードを選択した場合(ステップS33:Yes)、制御部101は、マージモードでのRDコストが最小か判定する(ステップS34)。具体的には、制御部101は、通常アフィン変換モード、回転モード、強制回転モード、スケーリングモード、及び強制スケーリングモードのいずれかでのRDコストが最小か判定する。
 マージモードでのRDコストが最小でない場合(ステップS34:No)、制御部101は、処理対象のブロックのMerge flagを0に設定し(ステップS35)、ステップS37に処理を進める。一方、マージモードでのRDコストが最小の場合(ステップS34:Yes)、制御部101は、処理対象のブロックのMerge flagを1に設定し(ステップS36)、ステップS37に処理を進める。
 続いて、制御部101は、並進モードでのRDコストが最小か判定する(ステップS37)。並進モードでのRDコストが最小の場合(ステップS37:No)、処理対象のブロックのaffine_flagを0に設定し(ステップS39)、設定処理を終了する。一方、並進モードでのRDコストが最小でない場合(ステップS37:Yes)、制御部101は、処理対象のブロックのaffine_flagを1に設定し(ステップS36)、ステップS40に処理を進める。
 続いて、制御部101は、回転モード(或いは強制回転モード)でのRDコストが最小か判定する(ステップS40)。回転モード(或いは強制回転モード)でのRDコストが最小の場合(ステップS40:No)、処理対象のブロックのrotation_flagを0に設定し(ステップS41)、設定処理を終了する。一方、回転モード(或いは強制回転モード)でのRDコストが最小でない場合(ステップS42:Yes)、制御部101は、処理対象のブロックのrotation_flagを1に設定し(ステップS42)、ステップS43に処理を進める。
 続いて、制御部101は、スケーリングモード(或いは強制スケーリングモード)でのRDコストが最小か判定する(ステップS43)。スケーリングモード(或いは強制スケーリングモード)でのRDコストが最小の場合(ステップS43:No)、処理対象のブロックのscaling_flagを0に設定し(ステップS44)、設定処理を終了する。一方、スケーリングモード(或いは強制スケーリングモード)でのRDコストが最小でない場合(ステップS43:Yes)、制御部101は、処理対象のブロックのscaling_flagを1に設定し(ステップS45)、設定処理を終了する。
 次に、インター符号化処理を説明する。図22は、インター符号化処理を説明するフローチャートである。上述したように、マージモード符号化処理及びAMVP符号化処理はインター符号化処理の一種である。このインター符号化処理は、ブロック単位(例えば、CU単位やPU単位)で行われる。
 まず、予測部119は、動き情報決定処理を実行する(ステップS51)。動き情報決定処理は、処理対象のブロックに設定する動き情報を決定するための処理である。
 例えば、affine_flagが0である場合、すなわち、動き補償モードが並進モードの場合、予測部119は、パラメータ情報に基づいて、予測ベクトルpv0を決定する。具体的には、予測部119は、パラメータ情報が予測ベクトルとして候補ベクトルを特定する情報である場合、図19に示すブロックa~gの動きベクトルに基づいて、DVが最も小さくなるブロックa~cのいずれかの動きベクトルから生成された候補ベクトルを、予測ベクトルpv0に決定する。なお、Merge flagが0の場合は、さらに、予測部119は、1つの予測ベクトルpv0と、パラメータ情報のうちの予測ベクトルpv0と処理対象のブロックの動きベクトルv0との差分dv0とを加算し、処理対象のブロックの動きベクトルv0を計算する。
 また、affine_flagが1、かつ、rotation_flagおよびscaling_flagが0の場合、すなわち、動き補償モードが通常アフィン変換モードの場合、予測部119は、パラメータ情報に基づいて、2つの予測ベクトルpv0及び予測ベクトルpv1を決定する。具体的には、予測部119は、パラメータ情報が予測ベクトルとして候補ベクトルを特定する情報である場合、保持しているブロックa~gの動きベクトルに基づいて、DVが最も小さくなるブロックa~cのいずれかとブロックd及びeのいずれかの動きベクトルの組み合わせを選択する。そして、予測部119は、選択されたブロックa~cのいずれかの動きベクトルを用いて生成された候補ベクトルを、予測ベクトルpv0に決定する。また、予測部119は、選択されたブロックd又はeの動きベクトルを用いて生成された候補ベクトルを、予測ベクトルpv1に決定する。そして、予測部119は、各予測ベクトルを処理対象のブロックの動きベクトルv0,v1として用いて、上述した式(1)及び(2)により、各単位ブロックの動きベクトルvを計算する。
 なお、Merge flagが0の場合は、予測部119は、2つの予測ベクトルのそれぞれと、その予測ベクトルに対応するパラメータ情報のうちの差分とを加算し、処理対象のブロックの2つの動きベクトルを計算する。具体的には、予測部119は、予測ベクトルpv0と、パラメータ情報のうちの予測ベクトルpv0と処理対象のブロックの動きベクトルv0との差分dv0とを加算し、処理対象のブロックの動きベクトルv0を計算する。また、予測部119は、予測ベクトルpv1と、パラメータ情報のうちの予測ベクトルpv1と処理対象のブロックの動きベクトルv1との差分dv1とを加算し、処理対象のブロックの動きベクトルv1を計算する。そして、予測部119は、2つの動きベクトルv0及びv1を用いて、上述した式(1)及び(2)により、各単位ブロックの動きベクトルvを計算する。
 また、affine_flagおよびrotation_flagが1、かつ、scaling_flagが0の場合、すなわち、動き補償モードが回転モード或いは強制回転モードの場合、予測部119は、パラメータ情報に基づいて、1つの予測ベクトルpv0を決定するとともに、予測角度情報を決定する。なお、Merge flagが0の場合は、さらに、予測部119は、1つの動きベクトルv0を計算する。また、予測部119は、予測角度情報と、パラメータ情報のうちの予測角度情報と処理対象のブロックの角度情報との差分とを加算することにより、処理対象のブロックの角度情報を計算する。
 また、affine_flagおよびscaling_flagが1、かつ、rotation_flagが0の場合、すなわち、動き補償モードがスケーリングモード或いは強制スケーリングモードの場合、予測部119は、パラメータ情報に基づいて、1つの予測ベクトルpv0を決定するとともに、予測スケーリング情報を決定する。なお、Merge flagが0の場合は、さらに、予測部119は、1つの動きベクトルv0を計算する。また、予測部119は、予測スケーリング情報と、パラメータ情報のうちの予測スケーリング情報と処理対象のブロックのスケーリング情報とのの差分とを加算することにより、処理対象のブロックのスケーリング情報を計算する。
 次に、予測部119は、動き補償を実行する(ステップS52)。
 例えば、affine_flagが0である場合、すなわち、動き補償モードが並進モードの場合、予測部119は、フレームメモリ118に格納された参照画像特定情報により特定される参照画像に対して並進モードで動き補償を行う。なお、Merge flagが1の場合は、予測部119は、予測ベクトルpv0を、処理対象のブロックの動きベクトルv0として用いる。予測部119は、動き補償が行われた参照画像を予測画像Pとして、演算部111や演算部117に供給する。
 また、affine_flagが1、かつ、rotation_flagおよびscaling_flagが0の場合、すなわち、動き補償モードが通常アフィン変換モードの場合、予測部119は、単位ブロックごとに、動きベクトルvに基づいて、参照画像特定情報により特定される参照画像のブロックを並進移動させることにより、参照画像に対してアフィン変換モードで動き補償を行う。予測部119は、動き補償が行われた参照画像を予測画像Pとして、演算部111や演算部117に供給する。
 また、affine_flagおよびrotation_flagが1、かつ、scaling_flagが0の場合、すなわち、動き補償モードが回転モード或いは強制回転モードの場合、予測部119は、参照画像に対して回転モードで動き補償を行う。なお、Merge flagが1の場合は、予測部119は、予測ベクトル及び予測角度情報を、処理対象のPUの動きベクトルv0及び角度情報として用いる。予測部119は、動き補償が行われた参照画像を予測画像Pとして、演算部111や演算部117に供給する。
 また、affine_flagおよびscaling_flagが1、かつ、rotation_flagが0の場合、すなわち、動き補償モードがスケーリングモード或いは強制スケーリングモードの場合、予測部119は、参照画像に対してスケーリングモードで動き補償を行う。なお、Merge flagが1の場合は、予測部119は、予測ベクトル及び予測スケーリング情報を、処理対象のブロックの動きベクトルv0及びスケーリング情報として用いる。予測部119は、動き補償が行われた参照画像を予測画像Pとして、演算部111や演算部117に供給する。
 次に、演算部111は、画像Iと予測画像Pとの差分を予測残差Dとして演算し、それを変換部112に供給する(ステップS53)。このようにして求められた予測残差Dは、元の画像Iに比べてデータ量が低減される。したがって、画像Iをそのまま符号化する場合に比べて、データ量を圧縮することができる。
 続いて、変換部112は、制御部101から供給される変換情報Tinfoに基づいて、演算部111から供給される予測残差Dに対して直交変換等を行い、変換係数Coeffを導出する(ステップS54)。変換部112は、変換係数Coeffを量子化部113に供給する。
 量子化部113は、制御部101から供給される変換情報Tinfoに基づいて、変換部112から供給される変換係数Coeffをスケーリング(量子化)し、量子化変換係数レベルlevelを導出する(ステップS55)。量子化部113は、量子化変換係数レベルlevelを符号化部114及び逆量子化部115に供給する。
 逆量子化部115は、制御部101から供給される変換情報Tinfoに基づいて、量子化部113から供給される量子化変換係数レベルlevelを、ステップS55の量子化の特性に対応する特性で逆量子化する(ステップS56)。逆量子化部115は、その結果得られる変換係数Coeff_IQを逆変換部116に供給する。
 逆変換部116は、制御部101から供給される変換情報Tinfoに基づいて、逆量子化部115から供給される変換係数Coeff_IQに対して、ステップS54の直交変換等に対応する方法で逆直交変換等を行い、予測残差D’を導出する(ステップS57)。
 演算部117は、ステップS57の処理により導出された予測残差D’を、予測部119から供給される予測画像Pと加算することにより、局所的な復号画像Recを生成する(ステップS58)。
 フレームメモリ118は、ステップS58の処理により得られた、局所的な復号画像Recを用いてピクチャ単位の復号画像を再構築し、フレームメモリ118内のバッファへ記憶する(ステップS59)。
 符号化部114は、図20のステップS11の処理により設定された符号化パラメータとステップS115の処理により得られた量子化変換係数レベルlevelを所定の方法で符号化する(ステップS60)。符号化部114は、その結果得られる符号化データを多重化し、符号化ストリームとして画像符号化装置100の外部に出力する。この符号化ストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。
 ステップS60の処理が終了すると、インター符号化処理が終了する。
 <2-8.マージモードの詳細>
 次に、本開示におけるマージモードの処理を詳細に説明する。
 上述したように、マージモードとは、参照先となる符号化済みのブロックの動き補償に用いられた動き情報に基づいて生成される動き情報に基づいてインター予測処理を行うモードである。図23は、カレントブロックと参照候補となる符号化済みのブロックとの位置関係を示す図である。図23の例では、ブロック31が処理対象のブロック(カレントブロック)であり、ブロックA~Eが参照候補となる符号化済みのブロックである。多くの場合、カレントブロックに近い位置にあるブロックの動き情報がカレントブロックの動き情報に近い。そのため、図23の例では、参照候補となるブロックをいずれもカレントブロックに隣接する隣接ブロックとしている。斜め方向にあるブロックも隣接ブロックである。なお、参照候補となるブロックは隣接ブロックに限られない。参照候補となるブロックは同一フレーム中のカレントブロックから離れた位置にあるブロックであってもよい。また、参照候補となるブロックは、他フレーム中のブロック(例えば、前フレームの同一位置にあるブロック)であってもよい。
 図24~図29は、マージの振る舞いを示す図である。
 図24の例では、マージされる領域はブロックAである。ブロックAには、スケーリングモードが設定されている。ブロックAは、ブロックAを拡大した領域を有するブロックA’を参照している。カレントブロック31には、ブロックAからブロックA’への拡大に合わせて拡大されたブロック135を参照するように動き情報が設定される。
 図25の例では、マージされる領域はブロックCである。ブロックCには、スケーリングモードが設定されている。ブロックCは、ブロックCを拡大したブロックC’を参照している。カレントブロック31には、ブロックCからブロックC’への拡大に合わせて拡大されたブロック135を参照するように動き情報が設定される。
 図26の例では、マージされる領域はブロックEである。ブロックEには、スケーリングモードが設定されている。ブロックEは、ブロックEを拡大したブロックE’を参照している。カレントブロック31には、ブロックEからブロックE’への拡大に合わせて拡大されたブロック135を参照するように動き情報が設定される。
 図27の例では、マージされる領域はブロックAである。ブロックAには、回転モードが設定されている。ブロックAは、ブロックAを回転させたブロックA’を参照している。カレントブロック31には、ブロックAからブロックA’への回転に合わせて回転されたブロック134を参照するように動き情報が設定される。
 図28の例では、マージされる領域はブロックCである。ブロックCには、回転モードが設定されている。ブロックCは、ブロックCを回転させたブロックC’を参照している。カレントブロック31には、ブロックCからブロックC’への回転に合わせて回転されたブロック134を参照するように動き情報が設定される。
 図29の例では、マージされる領域はブロックEである。ブロックEには、回転モードが設定されている。ブロックEは、ブロックEを回転させたブロックE’を参照している。カレントブロック31には、ブロックEからブロックE’への回転に合わせて回転されたブロック134を参照するように動き情報が設定される。
 図30は、マージ処理を説明するフローチャートである。マージ処理は、マージモードにおける動き情報決定処理の一例である。図30の例では、参照候補(マージ候補)となるブロックは図23に示すブロックA~Eとなる。
 まず、予測部119は、ブロックAに設定された動き補償モードがアフィン変換モードであるか否か判別する(ステップS101)。アフィン変換モードの場合(ステップS101:Yes)、予測部119は、カレントブロック31の動き情報をブロックAの動き情報に基づいて生成する(ステップS102)。このとき、予測部119は、通常アフィン変換モード、強制回転モード、及び強制スケーリングモードのうち最もRDコストが低いモードで動き情報を生成する。動き情報を生成したら、予測部119は、マージ処理を終了する。
 アフィン変換モードでない場合(ステップS101:No)、予測部119は、ブロックBに設定された動き補償モードがアフィン変換モードであるか否か判別する(ステップS103)。アフィン変換モードの場合(ステップS103:Yes)、予測部119は、カレントブロック31の動き情報をブロックBの動き情報に基づいて生成する(ステップS104)。このとき、予測部119は、通常アフィン変換モード、強制回転モード、及び強制スケーリングモードのうち最もRDコストが低いモードで動き情報を生成する。動き情報を生成したら、予測部119は、マージ処理を終了する。
 アフィン変換モードでない場合(ステップS103:No)、予測部119は、ブロックCに設定された動き補償モードがアフィン変換モードであるか否か判別する(ステップS105)。アフィン変換モードの場合(ステップS105:Yes)、予測部119は、カレントブロック31の動き情報をブロックCの動き情報に基づいて生成する(ステップS106)。このとき、予測部119は、通常アフィン変換モード、強制回転モード、及び強制スケーリングモードのうち最もRDコストが低いモードで動き情報を生成する。動き情報を生成したら、予測部119は、マージ処理を終了する。
 アフィン変換モードでない場合(ステップS105:No)、予測部119は、ブロックDに設定された動き補償モードがアフィン変換モードであるか否か判別する(ステップS107)。アフィン変換モードの場合(ステップS107:Yes)、予測部119は、カレントブロック31の動き情報をブロックDの動き情報に基づいて生成する(ステップS108)。このとき、予測部119は、通常アフィン変換モード、強制回転モード、及び強制スケーリングモードのうち最もRDコストが低いモードで動き情報を生成する。動き情報を生成したら、予測部119は、マージ処理を終了する。
 アフィン変換モードでない場合(ステップS107:No)、予測部119は、ブロックEに設定された動き補償モードがアフィン変換モードであるか否か判別する(ステップS109)。アフィン変換モードの場合(ステップS109:Yes)、予測部119は、カレントブロック31の動き情報をブロックEの動き情報に基づいて生成する(ステップS110)。このとき、予測部119は、通常アフィン変換モード、強制回転モード、及び強制スケーリングモードのうち最もRDコストが低いモードで動き情報を生成する。動き情報を生成したら、予測部119は、マージ処理を終了する。
 アフィン変換モードでない場合(ステップS109:No)、予測部119は、通常のマージモードを実行する(ステップS111)。例えば、予測部119は、図22のインター符号化処理で説明した方法で動き情報を決定する。動き情報を生成したら、予測部119は、マージ処理を終了する。
 上述したように、予測部119は、マージモードのアフィン変換モードでは、通常アフィン変換モード、強制回転モード、及び強制スケーリングモードのうち最もRDコストが低いモードで動き情報を生成する。ここで、通常アフィン変換モード、強制回転モード、及び強制スケーリングモードについて説明する。以下の説明では、通常アフィン変換モード、強制回転モード、及び強制スケーリングモードは、いずれもマージモードでのモードである。
 通常アフィン変換モードは、符号化済みのブロックに設定されたアフィン変換のための第1の種類の動き情報に基づき生成される第1の種類の動き情報をカレントブロックの動き情報として取得する動き補償モードである。ここで、第1の種類の動き情報は、アフィン変換のための複数の予測成分で構成される動き情報である。例えば、第1の種類の動き情報は、並進移動、回転、及びスケーリングの予測成分を少なくとも有する動き情報である。より具体的には、第1の種類の動き情報は、4パラメータ或いは6パラメータの動き情報である。
 強制回転モード、及び強制スケーリングモードは、符号化済みのブロックに設定された第1の種類の動き情報に基づき生成される第2の種類の動き情報をカレントブロックの動き情報として取得する動き補償モードである。ここで、第2の種類の動き情報は、第1の種類の動き情報とはアフィン変換のための予測成分の数が異なる動き情報(例えば、予測成分の数が少ない動き情報)である。例えば、第2の種類の動き情報は、第1の種類の動き情報を構成する複数の予測成分から少なくとも1つの予測成分を除いた1又は複数の予測成分で構成される動き情報である。第1の種類の動き情報が並進移動、回転、及びスケーリングの予測成分を有するのであれば、第2の種類の動き情報は、並進移動、回転、及びスケーリングの予測成分から少なくとも1つの予測成分を除いた動き情報である。
 強制スケーリングモードであれば、第2の種類の動き情報は、並進移動及びスケーリングの予測成分を有し、回転の予測成分を有さない動き情報である。強制回転モードであれば、第2の種類の動き情報は、並進移動及び回転の予測成分を有し、スケーリングの予測成分を有さない動き情報である。第2の種類の動き情報は、第3の種類の動き情報と言い換えることが可能である。
 図31は、マージの際に計算のために用いる変数を示す図である。小さなブロックがマージされるブロックであり、大きなブロックがカレントブロックである。hX、wXはマージされるブロックの高さと幅である。hとwはカレントブロックの高さと幅である。pX0はマージされるブロックの左上の位置である。p0は現時の左上の位置である。vX0、vX1、vX2はマージされるブロックの角の動き情報である。v0、v1、v2はカレントブロックの角の動き情報である。
 図31の例の場合、スケーリングモードでのマージで使う動き情報の導出式は、例えば、以下の式(4)~(6)の通りである。これにより、予測部119は、カレントブロックがスケーリングの動き予測となるようにパラメータを導出できる。
Figure JPOXMLDOC01-appb-M000003
 また、回転モードでのマージで使う動き情報の導出式は、例えば、以下の式(7)~(9)の通りである。これにより、予測部119は、カレントブロックが回転の動き予測となるようにパラメータを導出できる。
Figure JPOXMLDOC01-appb-M000004
 図32は、マージ処理の他の例を説明するフローチャートである。図32に示すマージ処理は、ブロックA~Eに、アフィン変換モード或いは回転モードが設定されていることを想定したマージ処理の例である。
 ステップS101~ステップS110は、図30のステップS101~ステップS110と同じであるので説明を省略する。
 ブロックEがアフィン変換モードでない場合(ステップS109:No)、予測部119は、ブロックAに設定された動き補償モードが回転モードであるか否か判別する(ステップS121)。回転モードの場合(ステップS121:Yes)、予測部119は、カレントブロック31の動き情報をブロックAの動き情報に基づいて生成する(ステップS122)。
 ブロックAが回転モードでない場合(ステップS121:No)、予測部119は、ブロックBに設定された動き補償モードが回転モードであるか否か判別する(ステップS123)。回転モードの場合(ステップS123:Yes)、予測部119は、カレントブロック31の動き情報をブロックBの動き情報に基づいて生成する(ステップS124)。
 ブロックBが回転モードでない場合(ステップS123:No)、予測部119は、ブロックCに設定された動き補償モードが回転モードであるか否か判別する(ステップS125)。回転モードの場合(ステップS125:Yes)、予測部119は、カレントブロック31の動き情報をブロックCの動き情報に基づいて生成する(ステップS126)。
 ブロックCが回転モードでない場合(ステップS125:No)、予測部119は、ブロックDに設定された動き補償モードが回転モードであるか否か判別する(ステップS127)。回転モードの場合(ステップS127:Yes)、予測部119は、カレントブロック31の動き情報をブロックDの動き情報に基づいて生成する(ステップS128)。
 ブロックDが回転モードでない場合(ステップS127:No)、予測部119は、ブロックEに設定された動き補償モードが回転モードであるか否か判別する(ステップS129)。回転モードの場合(ステップS129:Yes)、予測部119は、カレントブロック31の動き情報をブロックEの動き情報に基づいて生成する(ステップS130)。
 ブロックEが回転モードでない場合(ステップS129:No)、予測部119は、通常のマージモードを実行する(ステップS111)。動き情報を生成したら、予測部119は、マージ処理を終了する。
 図33は、マージ処理の他の例を説明するフローチャートである。図33に示すマージ処理は、ブロックA~Eに、アフィン変換モード或いはスケーリングモードが設定されていることを想定したマージ処理の例である。図32の例では、参照候補(マージ候補)となるブロックは図23に示すブロックA~Eとなる。
 ステップS101~ステップS110は、図30のステップS101~ステップS110と同じであるので説明を省略する。
 ブロックEがアフィン変換モードでない場合(ステップS109:No)、予測部119は、ブロックAに設定された動き補償モードがスケーリングモードであるか否か判別する(ステップS141)。スケーリングモードの場合(ステップS141:Yes)、予測部119は、カレントブロック31の動き情報をブロックAの動き情報に基づいて生成する(ステップS142)。
 ブロックAがスケーリングモードでない場合(ステップS141:No)、予測部119は、ブロックBに設定された動き補償モードが回転モードであるか否か判別する(ステップS143)。スケーリングモードの場合(ステップS143:Yes)、予測部119は、カレントブロック31の動き情報をブロックBの動き情報に基づいて生成する(ステップS144)。
 ブロックBがスケーリングモードでない場合(ステップS143:No)、予測部119は、ブロックCに設定された動き補償モードが回転モードであるか否か判別する(ステップS145)。スケーリングモードの場合(ステップS145:Yes)、予測部119は、カレントブロック31の動き情報をブロックCの動き情報に基づいて生成する(ステップS146)。
 ブロックCがスケーリングモードでない場合(ステップS145:No)、予測部119は、ブロックDに設定された動き補償モードが回転モードであるか否か判別する(ステップS147)。スケーリングモードの場合(ステップS127:Yes)、予測部119は、カレントブロック31の動き情報をブロックDの動き情報に基づいて生成する(ステップS148)。
 ブロックDがスケーリングモードでない場合(ステップS147:No)、予測部119は、ブロックEに設定された動き補償モードが回転モードであるか否か判別する(ステップS149)。スケーリングモードの場合(ステップS149:Yes)、予測部119は、カレントブロック31の動き情報をブロックEの動き情報に基づいて生成する(ステップS150)。
 ブロックEがスケーリングモードでない場合(ステップS149:No)、予測部119は、通常のマージモードを実行する(ステップS111)。動き情報を生成したら、予測部119は、マージ処理を終了する。
 以上に説明したように、本実施形態では、アフィン変換のマージモードに、通常のアフィン変換モード(第1のモード)に加えて、予測成分を削減して強制的に並進回転モードや並進スケーリングモードとする第2、第3のモード(強制回転モード、強制スケーリングモード)が用意されている。そのため、画像符号化装置100は、参照先となる符号化済みブロックの動き情報がアフィン変換モードの動き補償モードであっても、高精度の予測画像を生成できる。
 <2-9.画像復号装置の構成例>
 図34は、本開示の画像処理装置の一例である画像復号装置200の構成例を示すブロック図である。画像復号装置200は、図11の画像符号化装置100により生成された符号化ストリームを、画像符号化装置100における符号化方法に対応する復号方法で復号する。例えば、画像復号装置200は、HEVCに提案された技術や、JVETにて提案された技術を実装している。
 なお、図34においては、処理部やデータの流れ等の主なものを示しており、図34に示されるものが全てとは限らない。つまり、画像復号装置200において、図34においてブロックとして示されていない処理部が存在したり、図34において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
 図34の画像復号装置200は、復号部211、逆量子化部212、逆変換部213、演算部214、フレームメモリ215、及び予測部216を有する。画像符号化装置100は、画像符号化装置100により生成された符号化ストリームに対してブロック毎(例えばCUごと)に復号を行う。
 具体的には、画像復号装置200の復号部211は、画像符号化装置100により生成された符号化ストリームを、符号化部114における符号化方法に対応する所定の復号方法で復号する。例えば、復号部211は、シンタックステーブルの定義に沿って、符号化ストリームのビット列から、符号化パラメータ(ヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfo等)と量子化変換係数レベルlevelを復号する。また、復号部211は、符号化パラメータに含まれるsplit flagに基づいてLCUを分割し、各量子化変換係数レベルlevelに対応するCUを順に復号対象のブロック(CU,PU,TU)に設定する。
 これらパラメータには、動き補償モード情報が含まれる。そして、復号部211は、これらパラメータを画像復号装置200に設定する。この場合、復号部211は、画像復号装置200の設定部として機能する。例えば、復号部211は、符号化パラメータを各ブロックへ供給する。例えば、復号部211は、予測情報Pinfoを予測部216に供給し、変換情報Tinfoを逆量子化部212と逆変換部213に供給し、ヘッダ情報Hinfoを各ブロックに供給する。また、復号部211は、量子化変換係数レベルlevelを逆量子化部212に供給する。
 逆量子化部212は、復号部211から供給される変換情報Tinfoに基づいて、復号部211から供給される量子化変換係数レベルlevelの値をスケーリング(逆量子化)し、変換係数Coeff_IQを導出する。この逆量子化は、画像符号化装置100の量子化部113(図11)により行われる量子化の逆処理である。なお、逆量子化部115(図11)は、この逆量子化部212と同様の逆量子化を行う。逆量子化部212は、得られた変換係数Coeff_IQを逆変換部213に供給する。
 逆変換部213は、復号部211から供給される変換情報Tinfo等に基づいて、逆量子化部212より供給される変換係数Coeff_IQに対して逆直交変換等を行い、予測残差D’を導出する。この逆直交変換は、画像符号化装置100の変換部112(図11)により行われる直交変換の逆処理である。なお、逆変換部116は、この逆変換部213と同様の逆直交変換を行う。逆変換部213は、得られた予測残差D’を演算部214に供給する。
 演算部214は、逆変換部213から供給される予測残差D’とその予測残差D’に対応する予測画像Pとを加算し、局所的な復号画像Recを導出する。演算部214は、得られた局所的な復号画像Recを用いてピクチャ単位毎の復号画像を再構築し、得られた復号画像を画像復号装置200の外部に出力する。また、演算部214は、その局所的な復号画像Recをフレームメモリ215にも供給する。
 フレームメモリ215は、演算部214より供給される局所的な復号画像Recを用いてピクチャ単位毎の復号画像を再構築し、フレームメモリ215内のバッファに格納する。フレームメモリ215は、予測部216により指定される復号画像を参照画像としてバッファより読み出し、予測部216に供給する。また、フレームメモリ215は、その復号画像の生成に係るヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfoなどをフレームメモリ215内のバッファに格納するようにしても良い。
 予測部216は、予測情報Pinfoのモード情報pred_mode_flagがイントラ予測処理を示す場合、フレームメモリ215に格納された符号化対象のCUと同一時刻の復号画像を参照画像として取得する。そして、予測部216は、参照画像を用いて、符号化対象のブロックに対して、イントラ予測モード情報が示すイントラ予測モードのイントラ予測処理を行う。
 また、予測部216は、モード情報pred_mode_flagがインター予測処理を示す場合、参照画像特定情報に基づいて、フレームメモリ215に格納された符号化対象のブロック(例えば、CU)とは異なる時刻の復号画像を参照画像として取得する。予測部216は、図11の予測部119と同様に、Merge flag、動き補償モード情報、及びパラメータ情報に基づいて、参照画像を用いて、符号化対象のブロックのインター予測処理を行う。予測部216は、イントラ予測処理又はインター予測処理の結果生成される予測画像Pを演算部214に供給する。
 <2-10.画像復号装置の処理>
 図35は、画像復号装置200の画像復号処理を説明するフローチャートである。
 復号部211は、画像復号装置200に供給される符号化ストリームを復号し、符号化パラメータと量子化変換係数レベルlevelを得る(ステップS71)。復号部211は、符号化パラメータを各ブロックへ供給する。また、復号部211は、量子化変換係数レベルlevelを逆量子化部212に供給する。
 続いて、復号部211は、符号化パラメータに含まれるsplit flagに基づいてLCUを分割し、各量子化変換係数レベルlevelに対応するCUを復号対象のブロック(CU,PU,TU)に設定する(ステップS72)。後述の処理は、復号対象のブロック(CU,PU,TU)ごとに行われる。
 続いて、予測部216は、現在のスライスがI-SLICEか否か判別する(ステップS73)。I-SLICEの場合(ステップS73:Yes)、予測部216は、ステップS76に処理を進める。予測部216は、現在のスライスがI-SLICEか否か判別する(ステップS73)。I-SLICEでない場合(ステップS73:No)、予測部216は、現在のモードがスキップモードか否か判別する(ステップS74)。スキップモードの場合(ステップS74:Yes)、予測部216は、ステップS79に処理を進める。
 予測部216は、現在のモードがインターモードか否か判別する(ステップS75)。例えば、予測部216は、予測情報Pinfoのモード情報pred_mode_flagが、インター予測処理を示すかどうかを判定する。インターモードでない場合(ステップS75:No)、予測部216は、イントラ復号処理を実行する(ステップS76)。
 インターモードの場合(ステップS75:Yes)、予測部216は、予測情報PinfoのMerge flagが1であるかどうかを判定する(ステップS77)。Merge flagが1でない場合(ステップS77:No)、予測部216は、AMVPモード復号処理を行う(ステップS78)。AMVPモード復号処理は、AMVPモードのインター予測処理により生成された予測画像Pを用いて復号対象の画像を復号する処理である。AMVPモード復号処理については後述する。AMVPモード復号処理の終了後、画像復号処理は終了する。
 Merge flagが1の場合(ステップS77:Yes)、予測部216は、affine_flagが1であるかどうかを判定する(ステップS79)。affine_flagが1でない場合(ステップS79:No)、予測部216は、並進モード復号処理を行う(ステップS80)。並進モード復号処理は、インター復号処理の一種であり、並進モードのインター予測処理により生成された予測画像Pを用いて復号対象の画像を復号する処理である。並進モード復号処理については後述のインター復号処理の説明の箇所で説明する。並進モード復号処理の終了後、画像復号処理は終了する。
 affine_flagが1の場合(ステップS79:Yes)、予測部216は、rotation_flagが1であるかどうかを判定する(ステップS81)。rotation_flagが1の場合(ステップS81:Yes)、予測部216は、回転モード復号処理を行う(ステップS82)。回転モード復号処理は、インター復号処理の一種であり、回転モード或いは強制回転モードのインター予測処理により生成された予測画像Pを用いて復号対象の画像を復号する処理である。回転モード復号処理については後述のインター復号処理の説明の箇所で説明する。回転モード復号処理の終了後、画像復号処理は終了する。
 rotation_flagが1でない場合(ステップS81:No)、予測部216は、scaling_flagが1であるかどうかを判定する(ステップS83)。scaling_flagが1の場合(ステップS83:Yes)、予測部216は、スケーリングモード復号処理を行う(ステップS84)。スケーリングモード復号処理は、インター復号処理の一種であり、スケーリングモード或いは強制スケーリングモードのインター予測処理により生成された予測画像Pを用いて復号対象の画像を復号する処理である。スケーリングモード復号処理については後述のインター復号処理の説明の箇所で説明する。スケーリングモード復号処理の終了後、画像復号処理は終了する。
 scaling_flagが1でない場合(ステップS83:No)、予測部216は、通常アフィン変換モード復号処理を行う(ステップS85)。通常アフィン変換モード復号処理は、インター復号処理の一種であり、通常のアフィン変換モードのインター予測処理により生成された予測画像Pを用いて復号対象の画像を復号する処理である。通常アフィン変換モード復号処理については後述のインター復号処理の説明の箇所で説明する。通常アフィン変換モード復号処理の終了後、画像復号処理は終了する。
 インター復号処理を説明する。図36は、インター復号処理を説明するフローチャートである。上述したように、マージモード符号化処理及びAMVP符号化処理はインター復号処理の一種である。このインター復号処理は、ブロック単位(例えば、CU単位やPU単位)で行われる。
 逆量子化部212は、図35のステップS71の処理により得られた量子化変換係数レベルlevelを逆量子化して変換係数Coeff_IQを導出する(ステップS91)。この逆量子化は、画像符号化処理のステップS55(図22)において行われる量子化の逆処理であり、画像符号化処理のステップS56(図22)において行われる逆量子化と同様の処理である。
 逆変換部213は、ステップS91の処理により得られた変換係数Coeff_IQに対して逆直交変換等を行い、予測残差D'を導出する(ステップS91)。この逆直交変換は、画像符号化処理のステップS54(図22)において行われる直交変換の逆処理であり、画像符号化処理のステップS57(図22)において行われる逆直交変換と同様の処理である。
 ステップS94及びステップS95の処理は、予測部119ではなく予測部216により行われる点を除いて、図22のステップS51及びステップS52の処理と同様であるので、説明は省略する。
 演算部214は、ステップS92で導出された予測残差D’を、予測部216から供給される予測画像Pと加算し、局所的な復号画像Recを導出する(ステップS96)。演算部214は、得られた局所的な復号画像Recを用いてピクチャ単位毎の復号画像を再構築し、得られた復号画像を画像復号装置200の外部に出力する。また、演算部214は、その局所的な復号画像Recをフレームメモリ215に供給する。
 フレームメモリ215は、演算部214より供給される局所的な復号画像Recを用いてピクチャ単位毎の復号画像を再構築し、フレームメモリ215内のバッファに記憶する(ステップS96)。そして、画像復号装置200は、インター復号処理を終了する。
 以上に説明したように、本実施形態では、アフィン変換のマージモードに、通常のアフィン変換モード(第1のモード)に加えて、予測成分を削減して強制的に並進回転モードや並進スケーリングモードとする第2、第3のモード(強制回転モード、強制スケーリングモード)が用意されている。そのため、画像復号装置200は、参照先となる符号化済みブロックの動き情報がアフィン変換モードの動き補償モードであっても、高精度の予測画像を生成できる。
 <<3.第2実施の形態>>
 上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
 図37は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 コンピュータ800において、CPU(Central Processing Unit)801,ROM(Read Only Memory)802,RAM(Random Access Memory)803は、バス804により相互に接続されている。
 バス804には、さらに、入出力インタフェース810が接続されている。入出力インタフェース810には、入力部811、出力部812、記憶部813、通信部814、及びドライブ815が接続されている。
 入力部811は、キーボード、マウス、マイクロホンなどよりなる。出力部812は、ディスプレイ、スピーカなどよりなる。記憶部813は、ハードディスクや不揮発性のメモリなどよりなる。通信部814は、ネットワークインタフェースなどよりなる。ドライブ815は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア821を駆動する。
 以上のように構成されるコンピュータ800では、CPU801が、例えば、記憶部813に記憶されているプログラムを、入出力インタフェース810及びバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。
 コンピュータ800(CPU801)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア821に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線又は無線の伝送媒体を介して提供することができる。
 コンピュータ800では、プログラムは、リムーバブルメディア821をドライブ815に装着することにより、入出力インタフェース810を介して、記憶部813にインストールすることができる。また、プログラムは、有線又は無線の伝送媒体を介して、通信部814で受信し、記憶部813にインストールすることができる。その他、プログラムは、ROM802や記憶部813に、あらかじめインストールしておくことができる。
 なお、コンピュータ800が実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 <<4.第3実施の形態>>
 図38は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース(I/F)部909、制御部910、ユーザインタフェース(I/F)部911、及びバス912を備える。
 チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
 デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
 デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
 映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
 表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
 音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
 外部インタフェース部909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース部909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース部909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
 制御部910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
 ユーザインタフェース部911は、制御部910と接続される。ユーザインタフェース部911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
 バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース部909及び制御部910を相互に接続する。
 このように構成されたテレビジョン装置900において、デコーダ904が、上述した画像復号装置200の機能を有するようにしてもよい。つまり、デコーダ904が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、テレビジョン装置900は、図11~図32を参照して上述した各実施の形態と同様の効果を得ることができる。
 また、このように構成されたテレビジョン装置900において、映像信号処理部905が、例えば、デコーダ904から供給される画像データを符号化し、得られた符号化データを、外部インタフェース部909を介してテレビジョン装置900の外部に出力させることができるようにしてもよい。そして、その映像信号処理部905が、上述した画像符号化装置100の機能を有するようにしてもよい。つまり、映像信号処理部905が、デコーダ904から供給される画像データを、以上の各実施の形態において説明した方法で符号化するようにしてもよい。このようにすることにより、テレビジョン装置900は、図11~図32を参照して上述した各実施の形態と同様の効果を得ることができる。
 <<5.第4実施の形態>>
 図39は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
 アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
 携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
 音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
 また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させるとともに、電子メールデータを記録再生部929に供給し、その記憶媒体に書き込ませる。
 記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Universal Serial Bus)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
 また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記録再生部929に供給し、その記憶媒体に書き込ませる。
 さらに、画像表示モードにおいて、記録再生部929は、記憶媒体に記録されている符号化ストリームを読み出して画像処理部927へ出力する。画像処理部927は、記録再生部929から入力される符号化ストリームを復号し、画像データを表示部930に供給し、その画像を表示させる。
 また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
 このように構成された携帯電話機920において、例えば画像処理部927が、上述した画像符号化装置100の機能を有するようにしてもよい。つまり、画像処理部927が、画像データを、以上の各実施の形態において説明した方法で符号化するようにしてもよい。このようにすることにより、携帯電話機920は、図11~図32を参照して上述した各実施の形態と同様の効果を得ることができる。
 また、このように構成された携帯電話機920において、例えば画像処理部927が、上述した画像復号装置200の機能を有するようにしてもよい。つまり、画像処理部927が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、携帯電話機920は、図11~図32を参照して上述した各実施の形態と同様の効果を得ることができる。
 <<6.第5実施の形態>>
 図40は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
 記録再生装置940は、チューナ941、外部インタフェース(I/F)部942、エンコーダ943、HDD(Hard Disk Drive)部944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)部948、制御部949、及びユーザインタフェース(I/F)部950を備える。
 チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送部としての役割を有する。
 外部インタフェース部942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース部942は、例えば、IEEE(Institute of Electrical and Electronic Engineers)1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース部942を介して受信される映像データ及び音声データは、エンコーダ943へ入力される。即ち、外部インタフェース部942は、記録再生装置940における伝送部としての役割を有する。
 エンコーダ943は、外部インタフェース部942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
 HDD部944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラム及びその他のデータを内部のハードディスクに記録する。また、HDD部944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
 ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVD(Digital Versatile Disc)ディスク(DVD-Video、DVD-RAM(DVD - Random Access Memory)、DVD-R(DVD - Recordable)、DVD-RW(DVD - Rewritable)、DVD+R(DVD + Recordable)、DVD+RW(DVD + Rewritable)等)又はBlu-ray(登録商標)ディスクなどであってよい。
 セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD部944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD部944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
 デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD部948へ出力する。また、デコーダ947は、生成した音声データを外部のスピーカへ出力する。
 OSD部948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD部948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
 制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
 ユーザインタフェース部950は、制御部949と接続される。ユーザインタフェース部950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
 このように構成された記録再生装置940において、例えばエンコーダ943が、上述した画像符号化装置100の機能を有するようにしてもよい。つまり、エンコーダ943が、画像データを、以上の各実施の形態において説明方法で符号化するようにしてもよい。このようにすることにより、記録再生装置940は、図11~図32を参照して上述した各実施の形態と同様の効果を得ることができる。
 また、このように構成された記録再生装置940において、例えばデコーダ947が、上述した画像復号装置200の機能を有するようにしてもよい。つまり、デコーダ947が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、記録再生装置940は、図11~図32を参照して上述した各実施の形態と同様の効果を得ることができる。
 <<7.第6実施の形態>>
 図41は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
 撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース(I/F)部966、メモリ部967、メディアドライブ968、OSD部969、制御部970、ユーザインタフェース(I/F)部971、及びバス972を備える。
 光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース部971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、及び制御部970を相互に接続する。
 光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
 信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
 画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース部966又はメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース部966又はメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD部969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
 OSD部969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
 外部インタフェース部966は、例えばUSB入出力端子として構成される。外部インタフェース部966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース部966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース部966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース部966は、撮像装置960における伝送部としての役割を有する。
 メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
 制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース部971から入力される操作信号に応じて、撮像装置960の動作を制御する。
 ユーザインタフェース部971は、制御部970と接続される。ユーザインタフェース部971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース部971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
 このように構成された撮像装置960において、例えば画像処理部964が、上述した画像符号化装置100の機能を有するようにしてもよい。つまり、画像処理部964が、画像データを、以上の各実施の形態において説明した方法で符号化するようにしてもよい。このようにすることにより、撮像装置960は、図11~図32を参照して上述した各実施の形態と同様の効果を得ることができる。
 また、このように構成された撮像装置960において、例えば画像処理部964が、上述した画像復号装置200の機能を有するようにしてもよい。つまり、画像処理部964が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、撮像装置960は、図11~図32を参照して上述した各実施の形態と同様の効果を得ることができる。
 <<8.第7実施の形態>>
 <8-1.ビデオセットの構成例>
 また、本技術は、任意の装置又はシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。図42は、本技術を適用したビデオセットの概略的な構成の一例を示している。
 近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、1機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する1セットとして実施を行う場合も多く見られるようになってきた。
 図42に示されるビデオセット1300は、このような多機能化された構成であり、画像の符号化や復号(いずれか一方でもよいし、両方でも良い)に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
 図42に示されるように、ビデオセット1300は、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、及びフロントエンドモジュール1314等のモジュール群と、コネクティビティ1321、カメラ1322、及びセンサ1323等の関連する機能を有するデバイスとを有する。
 モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
 図42の例の場合、ビデオモジュール1311は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ、ビデオプロセッサ、ブロードバンドモデム1333、及びRFモジュール1334を有する。
 プロセッサは、所定の機能を有する構成をSoC(System On a Chip)により半導体チップに集積したものであり、例えばシステムLSI(Large Scale Integration)等と称されるものもある。この所定の機能を有する構成は、論理回路(ハードウエア構成)であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム(ソフトウエア構成)であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路(ハードウエア構成)により実現し、その他の機能をCPUにおいて実行されるプログラム(ソフトウエア構成)により実現するようにしてもよい。
 図42のアプリケーションプロセッサ1331は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ1331において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ1332等、ビデオモジュール1311内外の構成を必要に応じて制御することもできる。
 ビデオプロセッサ1332は、画像の符号化・復号(その一方又は両方)に関する機能を有するプロセッサである。
 ブロードバンドモデム1333は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線(又はその両方)の広帯域通信により送信するデータ(デジタル信号)をデジタル変調する等してアナログ信号に変換したり、その広帯域通信により受信したアナログ信号を復調してデータ(デジタル信号)に変換したりする。ブロードバンドモデム1333は、例えば、ビデオプロセッサ1332が処理する画像データ、画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報を処理する。
 RFモジュール1334は、アンテナを介して送受信されるRF(Radio Frequency)信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール1334は、ブロードバンドモデム1333により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール1334は、フロントエンドモジュール1314を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
 なお、図42において点線1341に示されるように、アプリケーションプロセッサ1331とビデオプロセッサ1332を、一体化し、1つのプロセッサとして構成されるようにしてもよい。
 外部メモリ1312は、ビデオモジュール1311の外部に設けられた、ビデオモジュール1311により利用される記憶デバイスを有するモジュールである。この外部メモリ1312の記憶デバイスは、どのような物理構成により実現するようにしてもよいが、一般的にフレーム単位の画像データのような大容量のデータの格納に利用されることが多いので、例えばDRAM(Dynamic Random Access Memory)のような比較的安価で大容量の半導体メモリにより実現するのが望ましい。
 パワーマネージメントモジュール1313は、ビデオモジュール1311(ビデオモジュール1311内の各構成)への電力供給を管理し、制御する。
 フロントエンドモジュール1314は、RFモジュール1334に対してフロントエンド機能(アンテナ側の送受信端の回路)を提供するモジュールである。図42に示されるように、フロントエンドモジュール1314は、例えば、アンテナ部1351、フィルタ1352、及び増幅部1353を有する。
 アンテナ部1351は、無線信号を送受信するアンテナ及びその周辺の構成を有する。アンテナ部1351は、増幅部1353から供給される信号を無線信号として送信し、受信した無線信号を電気信号(RF信号)としてフィルタ1352に供給する。フィルタ1352は、アンテナ部1351を介して受信されたRF信号に対してフィルタ処理等を行い、処理後のRF信号をRFモジュール1334に供給する。増幅部1353は、RFモジュール1334から供給されるRF信号を増幅し、アンテナ部1351に供給する。
 コネクティビティ1321は、外部との接続に関する機能を有するモジュールである。コネクティビティ1321の物理構成は、任意である。例えば、コネクティビティ1321は、ブロードバンドモデム1333が対応する通信規格以外の通信機能を有する構成や、外部入出力端子等を有する。
 例えば、コネクティビティ1321が、Bluetooth(登録商標)、IEEE 802.11(例えばWi-Fi(Wireless Fidelity、登録商標))、NFC(Near Field Communication)、IrDA(InfraRed Data Association)等の無線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した信号を送受信するアンテナ等を有するようにしてもよい。また、例えば、コネクティビティ1321が、USB(Universal Serial Bus)、HDMI(登録商標)(High-Definition Multimedia Interface)等の有線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した端子を有するようにしてもよい。さらに、例えば、コネクティビティ1321が、アナログ入出力端子等のその他のデータ(信号)伝送機能等を有するようにしてもよい。
 なお、コネクティビティ1321が、データ(信号)の伝送先のデバイスを含むようにしてもよい。例えば、コネクティビティ1321が、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等の記録媒体に対してデータの読み出しや書き込みを行うドライブ(リムーバブルメディアのドライブだけでなく、ハードディスク、SSD(Solid State Drive)、NAS(Network Attached Storage)等も含む)を有するようにしてもよい。また、コネクティビティ1321が、画像や音声の出力デバイス(モニタやスピーカ等)を有するようにしてもよい。
 カメラ1322は、被写体を撮像し、被写体の画像データを得る機能を有するモジュールである。カメラ1322の撮像により得られた画像データは、例えば、ビデオプロセッサ1332に供給されて符号化される。
 センサ1323は、例えば、音声センサ、超音波センサ、光センサ、照度センサ、赤外線センサ、イメージセンサ、回転センサ、角度センサ、角速度センサ、速度センサ、加速度センサ、傾斜センサ、磁気識別センサ、衝撃センサ、温度センサ等、任意のセンサ機能を有するモジュールである。センサ1323により検出されたデータは、例えば、アプリケーションプロセッサ1331に供給されてアプリケーション等により利用される。
 以上においてモジュールとして説明した構成をプロセッサとして実現するようにしてもよいし、逆にプロセッサとして説明した構成をモジュールとして実現するようにしてもよい。
 以上のような構成のビデオセット1300において、後述するようにビデオプロセッサ1332に本技術を適用することができる。したがって、ビデオセット1300は、本技術を適用したセットとして実施することができる。
 <8-2.ビデオプロセッサの構成例>
 図43は、本技術を適用したビデオプロセッサ1332(図42)の概略的な構成の一例を示している。
 図43の例の場合、ビデオプロセッサ1332は、ビデオ信号及びオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータ及びオーディオデータを復号し、ビデオ信号及びオーディオ信号を再生出力する機能とを有する。
 図43に示されるように、ビデオプロセッサ1332は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、フレームメモリ1405、及びメモリ制御部1406を有する。また、ビデオプロセッサ1332は、エンコード・デコードエンジン1407、ビデオES(Elementary Stream)バッファ1408A及び1408B、並びに、オーディオESバッファ1409A及び1409Bを有する。さらに、ビデオプロセッサ1332は、オーディオエンコーダ1410、オーディオデコーダ1411、多重化部(MUX(Multiplexer))1412、逆多重化部(DMUX(Demultiplexer))1413、及びストリームバッファ1414を有する。
 ビデオ入力処理部1401は、例えばコネクティビティ1321(図42)等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第1画像拡大縮小部1402は、画像データに対してフォーマット変換や画像の拡大縮小処理等を行う。第2画像拡大縮小部1403は、画像データに対して、ビデオ出力処理部1404を介して出力する先でのフォーマットに応じて画像の拡大縮小処理を行ったり、第1画像拡大縮小部1402と同様のフォーマット変換や画像の拡大縮小処理等を行ったりする。ビデオ出力処理部1404は、画像データに対して、フォーマット変換やアナログ信号への変換等を行って、再生されたビデオ信号として例えばコネクティビティ1321等に出力する。
 フレームメモリ1405は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、及びエンコード・デコードエンジン1407によって共用される画像データ用のメモリである。フレームメモリ1405は、例えばDRAM等の半導体メモリとして実現される。
 メモリ制御部1406は、エンコード・デコードエンジン1407からの同期信号を受けて、アクセス管理テーブル1406Aに書き込まれたフレームメモリ1405へのアクセススケジュールに従ってフレームメモリ1405に対する書き込み・読み出しのアクセスを制御する。アクセス管理テーブル1406Aは、エンコード・デコードエンジン1407、第1画像拡大縮小部1402、第2画像拡大縮小部1403等で実行される処理に応じて、メモリ制御部1406により更新される。
 エンコード・デコードエンジン1407は、画像データのエンコード処理、並びに、画像データが符号化されたデータであるビデオストリームのデコード処理を行う。例えば、エンコード・デコードエンジン1407は、フレームメモリ1405から読み出した画像データを符号化し、ビデオストリームとしてビデオESバッファ1408Aに順次書き込む。また、例えば、ビデオESバッファ1408Bからビデオストリームを順次読み出して復号し、画像データとしてフレームメモリ1405に順次書き込む。エンコード・デコードエンジン1407は、これらの符号化や復号において、フレームメモリ1405を作業領域として使用する。また、エンコード・デコードエンジン1407は、例えばマクロブロック毎の処理を開始するタイミングで、メモリ制御部1406に対して同期信号を出力する。
 ビデオESバッファ1408Aは、エンコード・デコードエンジン1407によって生成されたビデオストリームをバッファリングして、多重化部(MUX)1412に供給する。ビデオESバッファ1408Bは、逆多重化部(DMUX)1413から供給されたビデオストリームをバッファリングして、エンコード・デコードエンジン1407に供給する。
 オーディオESバッファ1409Aは、オーディオエンコーダ1410によって生成されたオーディオストリームをバッファリングして、多重化部(MUX)1412に供給する。オーディオESバッファ1409Bは、逆多重化部(DMUX)1413から供給されたオーディオストリームをバッファリングして、オーディオデコーダ1411に供給する。
 オーディオエンコーダ1410は、例えばコネクティビティ1321等から入力されたオーディオ信号を例えばデジタル変換し、例えばMPEGオーディオ方式やAC3(AudioCode number 3)方式等の所定の方式で符号化する。オーディオエンコーダ1410は、オーディオ信号が符号化されたデータであるオーディオストリームをオーディオESバッファ1409Aに順次書き込む。オーディオデコーダ1411は、オーディオESバッファ1409Bから供給されたオーディオストリームを復号し、例えばアナログ信号への変換等を行って、再生されたオーディオ信号として例えばコネクティビティ1321等に供給する。
 多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化する。この多重化の方法(すなわち、多重化により生成されるビットストリームのフォーマット)は任意である。また、この多重化の際に、多重化部(MUX)1412は、所定のヘッダ情報等をビットストリームに付加することもできる。つまり、多重化部(MUX)1412は、多重化によりストリームのフォーマットを変換することができる。例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームに変換する。また、例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、記録用のファイルフォーマットのデータ(ファイルデータ)に変換する。
 逆多重化部(DMUX)1413は、多重化部(MUX)1412による多重化に対応する方法で、ビデオストリームとオーディオストリームとが多重化されたビットストリームを逆多重化する。つまり、逆多重化部(DMUX)1413は、ストリームバッファ1414から読み出されたビットストリームからビデオストリームとオーディオストリームとを抽出する(ビデオストリームとオーディオストリームとを分離する)。つまり、逆多重化部(DMUX)1413は、逆多重化によりストリームのフォーマットを変換(多重化部(MUX)1412による変換の逆変換)することができる。例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321やブロードバンドモデム1333等から供給されたトランスポートストリームを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。また、例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321により各種記録媒体から読み出されたファイルデータを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。
 ストリームバッファ1414は、ビットストリームをバッファリングする。例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたトランスポートストリームをバッファリングし、所定のタイミングにおいて、又は外部からの要求等に基づいて、例えばコネクティビティ1321やブロードバンドモデム1333等に供給する。
 また、例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたファイルデータをバッファリングし、所定のタイミングにおいて、又は外部からの要求等に基づいて、例えばコネクティビティ1321等に供給し、各種記録媒体に記録させる。
 さらに、ストリームバッファ1414は、例えばコネクティビティ1321やブロードバンドモデム1333等を介して取得したトランスポートストリームをバッファリングし、所定のタイミングにおいて、又は外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
 また、ストリームバッファ1414は、例えばコネクティビティ1321等において各種記録媒体から読み出されたファイルデータをバッファリングし、所定のタイミングにおいて、又は外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
 次に、このような構成のビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321等からビデオプロセッサ1332に入力されたビデオ信号は、ビデオ入力処理部1401において4:2:2Y/Cb/Cr方式等の所定の方式のデジタル画像データに変換され、フレームメモリ1405に順次書き込まれる。このデジタル画像データは、第1画像拡大縮小部1402又は第2画像拡大縮小部1403に読み出されて、4:2:0Y/Cb/Cr方式等の所定の方式へのフォーマット変換及び拡大縮小処理が行われ、再びフレームメモリ1405に書き込まれる。この画像データは、エンコード・デコードエンジン1407によって符号化され、ビデオストリームとしてビデオESバッファ1408Aに書き込まれる。
 また、コネクティビティ1321等からビデオプロセッサ1332に入力されたオーディオ信号は、オーディオエンコーダ1410によって符号化され、オーディオストリームとして、オーディオESバッファ1409Aに書き込まれる。
 ビデオESバッファ1408Aのビデオストリームと、オーディオESバッファ1409Aのオーディオストリームは、多重化部(MUX)1412に読み出されて多重化され、トランスポートストリーム又はファイルデータ等に変換される。多重化部(MUX)1412により生成されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321やブロードバンドモデム1333等を介して外部ネットワークに出力される。また、多重化部(MUX)1412により生成されたファイルデータは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321等に出力され、各種記録媒体に記録される。
 また、例えばコネクティビティ1321やブロードバンドモデム1333等を介して外部ネットワークからビデオプロセッサ1332に入力されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。また、例えばコネクティビティ1321等において各種記録媒体から読み出され、ビデオプロセッサ1332に入力されたファイルデータは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。つまり、ビデオプロセッサ1332に入力されたトランスポートストリーム又はファイルデータは、逆多重化部(DMUX)1413によりビデオストリームとオーディオストリームとに分離される。
 オーディオストリームは、オーディオESバッファ1409Bを介してオーディオデコーダ1411に供給され、復号されてオーディオ信号が再生される。また、ビデオストリームは、ビデオESバッファ1408Bに書き込まれた後、エンコード・デコードエンジン1407により順次読み出されて復号されてフレームメモリ1405に書き込まれる。復号された画像データは、第2画像拡大縮小部1403によって拡大縮小処理されて、フレームメモリ1405に書き込まれる。そして、復号された画像データは、ビデオ出力処理部1404に読み出されて、4:2:2Y/Cb/Cr方式等の所定の方式にフォーマット変換され、さらにアナログ信号に変換されて、ビデオ信号が再生出力される。
 このように構成されるビデオプロセッサ1332に本技術を適用する場合、エンコード・デコードエンジン1407に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、エンコード・デコードエンジン1407が、上述した画像符号化装置100の機能若しくは画像復号装置200の機能又はその両方を有するようにしてもよい。このようにすることにより、ビデオプロセッサ1332は、図11~図32を参照して上述した各実施の形態と同様の効果を得ることができる。
 なお、エンコード・デコードエンジン1407において、本技術(すなわち、画像符号化装置100の機能若しくは画像復号装置200の機能又はその両方)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
 <8-3.ビデオプロセッサの他の構成例>
 図44は、本技術を適用したビデオプロセッサ1332の概略的な構成の他の例を示している。図44の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能を有する。
 より具体的には、図44に示されるように、ビデオプロセッサ1332は、制御部1511、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、及び内部メモリ1515を有する。また、ビデオプロセッサ1332は、コーデックエンジン1516、メモリインタフェース1517、多重化・逆多重化部(MUX DMUX)1518、ネットワークインタフェース1519、及びビデオインタフェース1520を有する。
 制御部1511は、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、及びコーデックエンジン1516等、ビデオプロセッサ1332内の各処理部の動作を制御する。
 図44に示されるように、制御部1511は、例えば、メインCPU1531、サブCPU1532、及びシステムコントローラ1533を有する。メインCPU1531は、ビデオプロセッサ1332内の各処理部の動作を制御するためのプログラム等を実行する。メインCPU1531は、そのプログラム等に従って制御信号を生成し、各処理部に供給する(つまり、各処理部の動作を制御する)。サブCPU1532は、メインCPU1531の補助的な役割を果たす。例えば、サブCPU1532は、メインCPU1531が実行するプログラム等の子プロセスやサブルーチン等を実行する。システムコントローラ1533は、メインCPU1531及びサブCPU1532が実行するプログラムを指定する等、メインCPU1531及びサブCPU1532の動作を制御する。
 ディスプレイインタフェース1512は、制御部1511の制御の下、画像データを例えばコネクティビティ1321等に出力する。例えば、ディスプレイインタフェース1512は、デジタルデータの画像データをアナログ信号に変換し、再生されたビデオ信号として、又はデジタルデータの画像データのまま、コネクティビティ1321のモニタ装置等に出力する。
 ディスプレイエンジン1513は、制御部1511の制御の下、画像データに対して、その画像を表示させるモニタ装置等のハードウエアスペックに合わせるように、フォーマット変換、サイズ変換、色域変換等の各種変換処理を行う。
 画像処理エンジン1514は、制御部1511の制御の下、画像データに対して、例えば画質改善のためのフィルタ処理等、所定の画像処理を施す。
 内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、及びコーデックエンジン1516により共用される、ビデオプロセッサ1332の内部に設けられたメモリである。内部メモリ1515は、例えば、ディスプレイエンジン1513、画像処理エンジン1514、及びコーデックエンジン1516の間で行われるデータの授受に利用される。例えば、内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、又はコーデックエンジン1516から供給されるデータを格納し、必要に応じて(例えば、要求に応じて)、そのデータを、ディスプレイエンジン1513、画像処理エンジン1514、又はコーデックエンジン1516に供給する。この内部メモリ1515は、どのような記憶デバイスにより実現するようにしてもよいが、一般的にブロック単位の画像データやパラメータ等といった小容量のデータの格納に利用することが多いので、例えばSRAM(Static Random Access Memory)のような比較的(例えば外部メモリ1312と比較して)小容量だが応答速度が高速な半導体メモリにより実現するのが望ましい。
 コーデックエンジン1516は、画像データの符号化や復号に関する処理を行う。このコーデックエンジン1516が対応する符号化・復号の方式は任意であり、その数は1つであってもよいし、複数であってもよい。例えば、コーデックエンジン1516は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化又は符号化データの復号を行うようにしてもよい。
 図44に示される例において、コーデックエンジン1516は、コーデックに関する処理の機能ブロックとして、例えば、MPEG-2 Video1541、AVC/H.2641542、HEVC/H.2651543、HEVC/H.265(Scalable)1544、HEVC/H.265(Multi-view)1545、及びMPEG-DASH1551を有する。
 MPEG-2 Video1541は、画像データをMPEG-2方式で符号化したり復号したりする機能ブロックである。AVC/H.2641542は、画像データをAVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.2651543は、画像データをHEVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.265(Scalable)1544は、画像データをHEVC方式でスケーラブル符号化したりスケーラブル復号したりする機能ブロックである。HEVC/H.265(Multi-view)1545は、画像データをHEVC方式で多視点符号化したり多視点復号したりする機能ブロックである。
 MPEG-DASH1551は、画像データをMPEG-DASH(MPEG-Dynamic Adaptive Streaming over HTTP)方式で送受信する機能ブロックである。MPEG-DASHは、HTTP(HyperText Transfer Protocol)を使ってビデオのストリーミングを行う技術であり、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択し伝送することを特徴の1つとする。MPEG-DASH1551は、規格に準拠するストリームの生成やそのストリームの伝送制御等を行い、画像データの符号化・復号については、上述したMPEG-2 Video1541ないしHEVC/H.265(Multi-view)1545を利用する。
 メモリインタフェース1517は、外部メモリ1312用のインタフェースである。画像処理エンジン1514やコーデックエンジン1516から供給されるデータは、メモリインタフェース1517を介して外部メモリ1312に供給される。また、外部メモリ1312から読み出されたデータは、メモリインタフェース1517を介してビデオプロセッサ1332(画像処理エンジン1514又はコーデックエンジン1516)に供給される。
 多重化・逆多重化部(MUX DMUX)1518は、符号化データのビットストリーム、画像データ、ビデオ信号等、画像に関する各種データの多重化や逆多重化を行う。この多重化・逆多重化の方法は任意である。例えば、多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、複数のデータを1つにまとめるだけでなく、所定のヘッダ情報等をそのデータに付加することもできる。また、逆多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、1つのデータを複数に分割するだけでなく、分割した各データに所定のヘッダ情報等を付加することもできる。つまり、多重化・逆多重化部(MUX DMUX)1518は、多重化・逆多重化によりデータのフォーマットを変換することができる。例えば、多重化・逆多重化部(MUX DMUX)1518は、ビットストリームを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームや、記録用のファイルフォーマットのデータ(ファイルデータ)に変換することができる。もちろん、逆多重化によりその逆変換も可能である。
 ネットワークインタフェース1519は、例えばブロードバンドモデム1333やコネクティビティ1321等向けのインタフェースである。ビデオインタフェース1520は、例えばコネクティビティ1321やカメラ1322等向けのインタフェースである。
 次に、このようなビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321やブロードバンドモデム1333等を介して外部ネットワークからトランスポートストリームを受信すると、そのトランスポートストリームは、ネットワークインタフェース1519を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、例えば、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてファイルデータに変換され、ビデオインタフェース1520を介して例えばコネクティビティ1321等に出力され、各種記録媒体に記録される。
 さらに、例えば、コネクティビティ1321等により図示せぬ記録媒体から読み出された、画像データが符号化された符号化データのファイルデータは、ビデオインタフェース1520を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてトランスポートストリームに変換され、ネットワークインタフェース1519を介して例えばコネクティビティ1321やブロードバンドモデム1333等に供給され図示せぬ他の装置に伝送される。
 なお、ビデオプロセッサ1332内の各処理部の間での画像データやその他のデータの授受は、例えば、内部メモリ1515や外部メモリ1312を利用して行われる。また、パワーマネージメントモジュール1313は、例えば制御部1511への電力供給を制御する。
 このように構成されるビデオプロセッサ1332に本技術を適用する場合、コーデックエンジン1516に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、コーデックエンジン1516が、上述した画像符号化装置100の機能若しくは画像復号装置200の機能又はその両方を有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図11~図32を参照して上述した各実施の形態と同様の効果を得ることができる。
 なお、コーデックエンジン1516において、本技術(すなわち、画像符号化装置100の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
 以上にビデオプロセッサ1332の構成を2例示したが、ビデオプロセッサ1332の構成は任意であり、上述した2例以外のものであってもよい。また、このビデオプロセッサ1332は、1つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する3次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
 <8-4.装置への適用例>
 ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図38)、携帯電話機920(図39)、記録再生装置940(図40)、撮像装置960(図41)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図11~図32を参照して上述した各実施の形態と同様の効果を得ることができる。
 なお、上述したビデオセット1300の各構成の一部であっても、ビデオプロセッサ1332を含むものであれば、本技術を適用した構成として実施することができる。例えば、ビデオプロセッサ1332のみを本技術を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線1341により示されるプロセッサやビデオモジュール1311等を、本技術を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、及びフロントエンドモジュール1314を組み合わせ、本技術を適用したビデオユニット1361として実施することもできる。いずれの構成の場合であっても、図11~図32を参照して上述した各実施の形態と同様の効果を得ることができる。
 つまり、ビデオプロセッサ1332を含むものであればどのような構成であっても、ビデオセット1300の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ1332、点線1341により示されるプロセッサ、ビデオモジュール1311、又は、ビデオユニット1361を、テレビジョン装置900(図38)、携帯電話機920(図39)、記録再生装置940(図40)、撮像装置960(図41)等に組み込むことができる。そして、本技術を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット1300の場合と同様に、図11~図32を参照して上述した各実施の形態と同様の効果を得ることができる。
 <<9.第8実施の形態>>
 また、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。図45は、本技術を適用したネットワークシステムの概略的な構成の一例を示している。
 図45に示されるネットワークシステム1600は、機器同士が、ネットワークを介して画像(動画像)に関する情報を授受するシステムである。このネットワークシステム1600のクラウドサービス1601は、自身に通信可能に接続されるコンピュータ1611、AV(Audio Visual)機器1612、携帯型情報処理端末1613、IoT(Internet of Things)デバイス1614等の端末に対して、画像(動画像)に関するサービスを提供するシステムである。例えば、クラウドサービス1601は、所謂動画配信(オンデマンドやライブ配信)のような、画像(動画像)のコンテンツの供給サービスを端末に提供する。また、例えば、クラウドサービス1601は、端末から画像(動画像)のコンテンツを受け取って保管するバックアップサービスを提供する。また、例えば、クラウドサービス1601は、端末同士の画像(動画像)のコンテンツの授受を仲介するサービスを提供する。
 クラウドサービス1601の物理構成は任意である。例えば、クラウドサービス1601は、動画像を保存し、管理するサーバ、動画像を端末に配信するサーバ、動画像を端末から取得するサーバ、ユーザ(端末)や課金を管理するサーバ等の各種サーバや、インターネットやLAN等の任意のネットワークを有するようにしてもよい。
 コンピュータ1611は、例えば、パーソナルコンピュータ、サーバ、ワークステーション等のような情報処理装置により構成される。AV機器1612は、例えば、テレビジョン受像機、ハードディスクレコーダ、ゲーム機器、カメラ等のような画像処理装置により構成される。携帯型情報処理端末1613は、例えば、ノート型パーソナルコンピュータ、タブレット端末、携帯電話機、スマートフォン等のような携帯型の情報処理装置により構成される。IoTデバイス1614は、例えば、機械、家電、家具、その他の物、ICタグ、カード型デバイス等、画像に関する処理を行う任意の物体により構成される。これらの端末は、いずれも通信機能を有し、クラウドサービス1601に接続し(セッションを確立し)、クラウドサービス1601と情報の授受を行う(すなわち通信を行う)ことができる。また、各端末は、他の端末と通信を行うこともできる。端末間の通信は、クラウドサービス1601を介して行うようにしてもよいし、クラウドサービス1601を介さずに行うようにしてもよい。
 以上のようなネットワークシステム1600に本技術を適用し、端末間や、端末とクラウドサービス1601との間で画像(動画像)のデータが授受される際に、その画像データを各実施の形態において上述したように符号化・復号するようにしてもよい。つまり、端末(コンピュータ1611ないしIoTデバイス1614)やクラウドサービス1601が、それぞれ、上述した画像符号化装置100や画像復号装置200の機能を有するようにしてもよい。このようにすることにより、画像データを授受する端末(コンピュータ1611ないしIoTデバイス1614)やクラウドサービス1601は、図11~図32を参照して上述した各実施の形態と同様の効果を得ることができる。
 なお、符号化データ(ビットストリーム)に関する各種情報は、符号化データに多重化されて伝送され又は記録されるようにしてもよいし、符号化データに多重化されることなく、符号化データと関連付けられた別個のデータとして伝送され又は記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
 また、上述したように、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
 なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
 また、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
 なお、本開示は、以下のような構成もとることができる。
(1)
 符号化済みのブロックに設定されたアフィン変換のための第1の種類の動き情報に基づき生成される第1の種類の動き情報を所定のブロックの動き情報として取得する第1のモードと、第1の種類の動き情報とはアフィン変換のための予測成分の数が異なる第2の種類の動き情報であって前記符号化済みのブロックに設定された第1の種類の動き情報に基づき生成される第2の種類の動き情報を前記所定のブロックの動き情報として取得する第2のモードと、を含む複数のモードのうちのいずれかのモードで動き補償を行う予測部、
 を備える画像処理装置。
(2)
 前記第2の種類の動き情報は、前記第1の種類の動き情報とはアフィン変換のための予測成分の数が少ない動き情報である、
 前記(1)に記載の画像処理装置。
(3)
 前記第1の種類の動き情報は、アフィン変換のための複数の予測成分で構成される動き情報であり、
 前記第2の種類の動き情報は、前記第1の種類の動き情報を構成する複数の予測成分から少なくとも1つの予測成分を除いた1又は複数の予測成分で構成される動き情報である、
 前記(1)又は(2)に記載の画像処理装置。
(4)
 前記第1の種類の動き情報は、並進移動、回転、及びスケーリングの予測成分を少なくとも有する動き情報であり、
 前記第2の種類の動き情報は、並進移動、回転、及びスケーリングの予測成分から少なくとも1つの予測成分を除いた動き情報である、
 前記(1)から(3)のいずれか1つに記載の画像処理装置。
(5)
 前記第2の種類の動き情報は、並進移動及び回転の予測成分を有し、スケーリングの予測成分を有さない動き情報である、
 前記(4)に記載の画像処理装置。
(6)
 前記第2の種類の動き情報は、並進移動及びスケーリングの予測成分を有し、回転の予測成分を有さない動き情報である、
 前記(4)に記載の画像処理装置。
(7)
 前記第1のモードと前記第2のモードとを含む複数のモードのいずれかを示すモード情報を設定する設定部、をさらに備える、
 前記(1)から(6)のいずれか1つに記載の画像処理装置。
(8)
 前記予測部は、前記モード情報に基づいて選択されたモードで動き補償を行う、
 前記(7)に記載の画像処理装置。
(9)
 前記予測部は、
 並進移動、回転、及びスケーリングの予測成分を少なくとも有する前記第1の種類の動き情報であって、符号化済みのブロックに設定された前記第1の種類の動き情報に基づき生成される前記第1の種類の動き情報を所定のブロックの動き情報として取得する第1のモードと、
 並進移動及び回転の予測成分を有し、スケーリングの予測成分を有さない前記第2の種類の動き情報であって、符号化済みのブロックに設定された前記第1の種類の動き情報に基づき生成される前記第2の種類の動き情報を所定のブロックの動き情報として取得する第2のモードと、
 並進移動及びスケーリングの予測成分を有し、回転の予測成分を有さない第3の種類の動き情報であって、符号化済みのブロックに設定された前記第1の種類の動き情報に基づき生成される前記第3の種類の動き情報を所定のブロックの動き情報として取得する第3のモードと、
 を含む複数のモードのうちのいずれかのモードで参照画像に対して動き補償を行う、
 前記(1)に記載の画像処理装置。
(10)
 前記第1のモードと前記第2のモードと前記第3のモードとを含む複数のモードのいずれかを示すモード情報を設定する設定部、をさらに備える、
 前記(9)に記載の画像処理装置。
(11)
 前記予測部は、前記モード情報に基づいて選択されたモードで動き補償を行う、
 前記(10)に記載の画像処理装置。
(12)
 前記符号化済みのブロックは、前記所定のブロックに隣接するブロックである、
 前記(1)から(11)のいずれか1つに記載の画像処理装置。
(13)
 前記符号化済みのブロックは、前記所定のブロックが属するフレームとは別のフレームのブロックである、
 前記(1)から(11)のいずれか1つに記載の画像処理装置。
(14)
 符号化済みのブロックに設定されたアフィン変換のための第1の種類の動き情報に基づき生成される第1の種類の動き情報を所定のブロックの動き情報として取得する第1のモードと、第1の種類の動き情報とはアフィン変換のための予測成分の数が異なる第2の種類の動き情報であって前記符号化済みのブロックに設定された第1の種類の動き情報に基づき生成される第2の種類の動き情報を所定のブロックの動き情報として取得する第2のモードと、を含む複数のモードのうちのいずれかのモードで参照画像に対して動き補償を行う、
 画像処理方法。
(15)
 コンピュータを、
 符号化済みのブロックに設定されたアフィン変換のための第1の種類の動き情報に基づき生成される第1の種類の動き情報を所定のブロックの動き情報として取得する第1のモードと、第1の種類の動き情報とはアフィン変換のための予測成分の数が異なる第2の種類の動き情報であって前記符号化済みのブロックに設定された第1の種類の動き情報に基づき生成される第2の種類の動き情報を前記所定のブロックの動き情報として取得する第2のモードと、を含む複数のモードのうちのいずれかのモードで動き補償を行う予測部、
 として機能させるための画像処理プログラム。
 100 画像符号化装置
 101 制御部
 119 予測部
 200 画像復号装置
 211 復号部
 216 予測部

Claims (15)

  1.  符号化済みのブロックに設定されたアフィン変換のための第1の種類の動き情報に基づき生成される第1の種類の動き情報を所定のブロックの動き情報として取得する第1のモードと、第1の種類の動き情報とはアフィン変換のための予測成分の数が異なる第2の種類の動き情報であって前記符号化済みのブロックに設定された第1の種類の動き情報に基づき生成される第2の種類の動き情報を前記所定のブロックの動き情報として取得する第2のモードと、を含む複数のモードのうちのいずれかのモードで動き補償を行う予測部、
     を備える画像処理装置。
  2.  前記第2の種類の動き情報は、前記第1の種類の動き情報とはアフィン変換のための予測成分の数が少ない動き情報である、
     請求項1に記載の画像処理装置。
  3.  前記第1の種類の動き情報は、アフィン変換のための複数の予測成分で構成される動き情報であり、
     前記第2の種類の動き情報は、前記第1の種類の動き情報を構成する複数の予測成分から少なくとも1つの予測成分を除いた1又は複数の予測成分で構成される動き情報である、
     請求項2に記載の画像処理装置。
  4.  前記第1の種類の動き情報は、並進移動、回転、及びスケーリングの予測成分を少なくとも有する動き情報であり、
     前記第2の種類の動き情報は、並進移動、回転、及びスケーリングの予測成分から少なくとも1つの予測成分を除いた動き情報である、
     請求項3に記載の画像処理装置。
  5.  前記第2の種類の動き情報は、並進移動及び回転の予測成分を有し、スケーリングの予測成分を有さない動き情報である、
     請求項4に記載の画像処理装置。
  6.  前記第2の種類の動き情報は、並進移動及びスケーリングの予測成分を有し、回転の予測成分を有さない動き情報である、
     請求項4に記載の画像処理装置。
  7.  前記第1のモードと前記第2のモードとを含む複数のモードのいずれかを示すモード情報を設定する設定部、をさらに備える、
     請求項1に記載の画像処理装置。
  8.  前記予測部は、前記モード情報に基づいて選択されたモードで動き補償を行う、
     請求項7に記載の画像処理装置。
  9.  前記予測部は、
     並進移動、回転、及びスケーリングの予測成分を少なくとも有する前記第1の種類の動き情報であって、符号化済みのブロックに設定された前記第1の種類の動き情報に基づき生成される前記第1の種類の動き情報を所定のブロックの動き情報として取得する第1のモードと、
     並進移動及び回転の予測成分を有し、スケーリングの予測成分を有さない前記第2の種類の動き情報であって、符号化済みのブロックに設定された前記第1の種類の動き情報に基づき生成される前記第2の種類の動き情報を所定のブロックの動き情報として取得する第2のモードと、
     並進移動及びスケーリングの予測成分を有し、回転の予測成分を有さない第3の種類の動き情報であって、符号化済みのブロックに設定された前記第1の種類の動き情報に基づき生成される前記第3の種類の動き情報を所定のブロックの動き情報として取得する第3のモードと、
     を含む複数のモードのうちのいずれかのモードで参照画像に対して動き補償を行う、
     請求項1に記載の画像処理装置。
  10.  前記第1のモードと前記第2のモードと前記第3のモードとを含む複数のモードのいずれかを示すモード情報を設定する設定部、をさらに備える、
     請求項9に記載の画像処理装置。
  11.  前記予測部は、前記モード情報に基づいて選択されたモードで動き補償を行う、
     請求項10に記載の画像処理装置。
  12.  前記符号化済みのブロックは、前記所定のブロックに隣接するブロックである、
     請求項1に記載の画像処理装置。
  13.  前記符号化済みのブロックは、前記所定のブロックが属するフレームとは別のフレームのブロックである、
     請求項1に記載の画像処理装置。
  14.  符号化済みのブロックに設定されたアフィン変換のための第1の種類の動き情報に基づき生成される第1の種類の動き情報を所定のブロックの動き情報として取得する第1のモードと、第1の種類の動き情報とはアフィン変換のための予測成分の数が異なる第2の種類の動き情報であって符号化済みのブロックに設定された前記第1の種類の動き情報に基づき生成される前記第2の種類の動き情報を所定のブロックの動き情報として取得する第2のモードと、を含む複数のモードのうちのいずれかのモードで参照画像に対して動き補償を行う、
     画像処理方法。
  15.  コンピュータを、
     符号化済みのブロックに設定されたアフィン変換のための第1の種類の動き情報に基づき生成される第1の種類の動き情報を所定のブロックの動き情報として取得する第1のモードと、第1の種類の動き情報とはアフィン変換のための予測成分の数が異なる第2の種類の動き情報であって前記符号化済みのブロックに設定された第1の種類の動き情報に基づき生成される第2の種類の動き情報を前記所定のブロックの動き情報として取得する第2のモードと、を含む複数のモードのうちのいずれかのモードで動き補償を行う予測部、
     として機能させるための画像処理プログラム。
PCT/JP2019/021847 2018-07-06 2019-05-31 画像処理装置、画像処理方法、及び画像処理プログラム WO2020008769A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018129330 2018-07-06
JP2018-129330 2018-07-06

Publications (1)

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

Family

ID=69059462

Family Applications (1)

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

Country Status (1)

Country Link
WO (1) WO2020008769A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015092650A (ja) * 2013-09-30 2015-05-14 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置
WO2018061563A1 (ja) * 2016-09-27 2018-04-05 シャープ株式会社 アフィン動きベクトル導出装置、予測画像生成装置、動画像復号装置、および動画像符号化装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015092650A (ja) * 2013-09-30 2015-05-14 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置
WO2018061563A1 (ja) * 2016-09-27 2018-04-05 シャープ株式会社 アフィン動きベクトル導出装置、予測画像生成装置、動画像復号装置、および動画像符号化装置

Similar Documents

Publication Publication Date Title
WO2018047668A1 (ja) 画像処理装置および画像処理方法
US20220394299A1 (en) Image processing apparatus and method
US20190238839A1 (en) Image processing apparatus and image processing method
RU2669685C2 (ru) Устройство и способ декодирования изображения
US20190385276A1 (en) Image processing apparatus and image processing method
WO2018131523A1 (ja) 画像処理装置および画像処理方法
US20200213610A1 (en) Image processor and image processing method
WO2015008652A1 (ja) 画像処理装置および方法
TWI701944B (zh) 影像處理裝置及影像處理方法
US20200288123A1 (en) Image processing apparatus and image processing method
WO2020008724A1 (ja) 画像処理装置、画像処理方法及びプログラム
TW201524194A (zh) 解碼裝置、解碼方法、編碼裝置,以及編碼方法
US20180302629A1 (en) Image processing apparatus and method
US20190132590A1 (en) Image processing device and method
RU2649758C2 (ru) Устройство и способ обработки изображения
WO2015098559A1 (ja) 復号装置および復号方法、並びに、符号化装置および符号化方法
WO2020008769A1 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
WO2016199574A1 (ja) 画像処理装置および画像処理方法

Legal Events

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

Ref document number: 19829983

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP