WO2018131523A1 - 画像処理装置および画像処理方法 - Google Patents

画像処理装置および画像処理方法 Download PDF

Info

Publication number
WO2018131523A1
WO2018131523A1 PCT/JP2017/047373 JP2017047373W WO2018131523A1 WO 2018131523 A1 WO2018131523 A1 WO 2018131523A1 JP 2017047373 W JP2017047373 W JP 2017047373W WO 2018131523 A1 WO2018131523 A1 WO 2018131523A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
image
prediction
block
size
Prior art date
Application number
PCT/JP2017/047373
Other languages
English (en)
French (fr)
Inventor
健治 近藤
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to US16/471,981 priority Critical patent/US20190335191A1/en
Priority to RU2019120751A priority patent/RU2019120751A/ru
Priority to AU2017393148A priority patent/AU2017393148A1/en
Priority to EP17891818.1A priority patent/EP3570547A4/en
Priority to CN201780082515.2A priority patent/CN110169071A/zh
Priority to CA3048569A priority patent/CA3048569A1/en
Priority to KR1020197018121A priority patent/KR20190105572A/ko
Priority to BR112019013978-8A priority patent/BR112019013978A2/pt
Priority to JP2018561334A priority patent/JPWO2018131523A1/ja
Publication of WO2018131523A1 publication Critical patent/WO2018131523A1/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • 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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/53Multi-resolution motion estimation; Hierarchical motion estimation
    • 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/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/543Motion estimation other than block-based using regions
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Definitions

  • the present disclosure relates to an image processing device and an image processing method, and in particular, when a predicted image of a block is generated based on a motion vector of two vertices of the block, the predicted image of a rectangular block can be generated with high accuracy.
  • the present invention relates to an image processing apparatus and an image processing method that can be performed.
  • JVET Joint Video Exploration Team
  • ITU-T International Telecommunication Union Union Telecommunication Standardization Sector
  • MC Affine motion compensation
  • JVET adopts a technique called QTBT (Quad tree plus binary tree) described in Non-Patent Document 3 as a technique for forming a CU (Coding Unit). Therefore, the shape of the CU may be not only a square but also a rectangle.
  • QTBT Quad tree plus binary tree
  • JVET-C1001 Joint Exploration Test Model 4
  • JVET-C0062 JVET of ITU-T SG16 WP3 and ISO / IEC JTC1 / SC29 / WG11,26 May-1 June 2016 Feng Zou, ”Improved affine motion prediction (JVET-C0062)”, JVET of ITU-T SG16 WP3 and ISO / IEC JTC1 / SC29 / WG11,26 May-1 June 2016
  • JVET-C0024 Quadtree plus binary tree structure integration with JEM tools
  • JVET-C0024 JVET of ITU-T SG16 WP3 and ISO / IEC JTC1 / SC29 / WG11, May 16, 2016
  • PU Prediction Unit
  • PU Prediction Unit
  • the affine transformation in the inter prediction process is performed based on the motion vector of the two short vertices of the PU, the motion of the two long vertices Compared with the case of performing based on a vector, a decrease in prediction accuracy due to a motion vector error becomes large.
  • the present disclosure has been made in view of such a situation.
  • a predicted image of a block is generated based on a motion vector of two vertices of a block
  • a predicted image of a rectangular block is generated with high accuracy. Is to be able to.
  • An image processing apparatus includes a prediction unit that generates a predicted image of a block based on motion vectors of two vertices arranged in a large size direction of the vertical size and horizontal size of the block.
  • An image processing apparatus is provided.
  • the image processing method according to one aspect of the present disclosure corresponds to the image processing apparatus according to one aspect of the present disclosure.
  • a predicted image of the block is generated based on the motion vectors of the two vertices arranged in the larger size direction of the vertical size and the horizontal size of the block.
  • a predicted image can be generated. Further, according to one aspect of the present disclosure, when a predicted image of a block is generated based on a motion vector of two vertices of the block, a predicted image of a rectangular block can be generated with high accuracy.
  • FIG. 1 to 9 Premises of the present disclosure (FIGS. 1 to 9) 1.
  • First embodiment image processing apparatus (FIGS. 10 to 25) 2.
  • Second Embodiment Computer (FIG. 26) 3.
  • Third embodiment Television apparatus (FIG. 27) 4).
  • Fourth embodiment mobile phone (FIG. 28) 5).
  • Fifth embodiment recording / reproducing apparatus (FIG. 29) 6).
  • Sixth embodiment imaging apparatus (FIG. 30) 7).
  • Seventh embodiment Video set (FIGS. 31 to 33) 8).
  • FIG. 1 is a diagram for explaining inter prediction processing for performing motion compensation based on one motion vector.
  • the horizontal direction (horizontal direction) of an image (picture) is the x direction
  • the vertical direction (vertical direction) is the y direction.
  • one motion vector v c (v cx , v cy ) is determined for the prediction target PU 11 (current block). The Then, in the reference image at different times than the picture 10 containing PU11, the motion vector v c by the same size of the block 13 and PU11 present at a position distant from the PU11, translate based on the motion vector v c As a result, a predicted image of the PU 11 is generated.
  • FIG. 2 is a diagram for explaining inter prediction processing for performing motion compensation based on one motion vector and a rotation angle.
  • one motion vector v c (v cx , v cy ) and a rotation angle ⁇ for the prediction target PU 11. Is determined. Then, a block 21 having the same size as the PU 11 existing at a position separated from the PU 11 by a motion vector v c in the reference image at a time different from that of the picture 10 including the PU 11 and having a rotation angle ⁇ is represented by the motion vector v c. And the prediction image of the PU 11 is generated by performing affine transformation based on the rotation angle ⁇ .
  • FIG. 3 is a diagram for explaining inter prediction processing for performing motion compensation based on two motion vectors.
  • the motion vector v 0 (v 0x, v 0y ) at the apex A of the upper left PU31 and
  • the motion vector v 1 (v 1x , v 1y ) at the upper right vertex B is determined.
  • a point A ′ separated from the vertex A by the motion vector v 0 in the reference image at a time different from that of the picture including the PU 31 is set as the upper left vertex, and a point B ′ separated from the vertex B by the motion vector v 1 is set in the upper right corner.
  • the predicted image of the PU 31 is generated by performing affine transformation on the block 32 having the vertices of based on the motion vector v 0 and the motion vector v 1 .
  • the PU 31 is divided into blocks of a predetermined size (hereinafter referred to as motion compensation unit blocks).
  • the motion vector v (v x , v y ) of each motion compensation unit block is based on the motion vector v 0 (v 0x , v 0y ) and the motion vector v 1 (v 1x , v 1y ) as follows: It is obtained by (1).
  • W is the size of the PU 31 in the x direction
  • H is the size of the PU 31 in the y direction. Therefore, W and H are equal when the PU 31 is square.
  • X and y are the positions of the motion compensation unit block in the x and y directions, respectively. According to Equation (1), the motion vector v of the motion compensation unit block is determined based on the position of the motion compensation unit block.
  • the motion compensation unit block in the reference image that is the same size as the motion compensation unit block that is separated from each motion compensation unit block by the motion vector v is translated based on the motion vector v, thereby predicting each motion compensation unit block. Generate an image.
  • the affine transformation based on the two motion vectors is an affine transformation on the assumption that the blocks before and after the affine transformation are rectangular.
  • three motion vectors are required.
  • FIG. 4 is a diagram for explaining inter prediction processing for performing motion compensation based on three motion vectors.
  • a motion vector v 0 (v 0x , v 0y ) and a motion vector v 1 (v 1x ) are applied to the prediction target PU 31.
  • V 1y ) as well as the motion vector v 2 (v 2x , v 2y ) of the lower left vertex C is determined.
  • a point A ′ separated from the vertex A by the motion vector v 0 in the reference image at a time different from that of the picture including the PU 31 is set as the upper left vertex
  • a point B ′ separated from the vertex B by the motion vector v 1 is set in the upper right corner.
  • the block 42 translates as shown in FIG. 5A, skews as shown in FIG. 5B, or rotates as shown in FIG. 5C. Or enlargement or reduction (scaling) as shown in FIG.
  • a predicted image is generated that compensates for translational movement between the screens, movement in the rotation direction, and changes in shape such as enlargement, reduction, and skew.
  • the block 42 before the affine transformation is indicated by a solid line
  • the block 42 after the affine transformation is indicated by a dotted line.
  • the inter prediction process in which motion compensation is performed based on the two motion vectors described with reference to FIG. 3 the translation image between the screen and the movement in the rotation direction, and the shape such as enlargement or reduction Change can be compensated, but skew cannot be compensated. Therefore, in the inter prediction process in which motion compensation is performed based on three motion vectors, the accuracy of the predicted image is improved as compared to the inter prediction process in which motion compensation is performed based on two motion vectors.
  • JVET proposes a technique of switching between an inter prediction process that performs motion compensation based on two motion vectors and an inter prediction process that performs motion compensation based on three motion vectors, according to a control signal.
  • the coding process is executed in units of processing called macroblocks.
  • the macro block is a block having a uniform size of 16 ⁇ 16 pixels.
  • the encoding process is executed in a processing unit (encoding unit) called CU.
  • the CU is a block having a variable size formed by recursively dividing an LCU (Largest Coding Unit) that is a maximum coding unit.
  • the maximum selectable CU size is 64x64 pixels.
  • the minimum selectable CU size is 8x8 pixels.
  • the minimum size CU is called a SCU (Smallest Coding Unit). Note that 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.
  • Prediction processing for predictive coding is executed in units of processing called PUs.
  • a PU is formed by dividing a CU with one of several division patterns.
  • the PU is composed of processing units called PB (Prediction Block) for each luminance (Y) and color difference (Cb, Cr).
  • PB Prediction Block
  • Cb, Cr color difference
  • the orthogonal transformation process 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 is composed of processing units (transform blocks) called TB (Transform Block) for each luminance (Y) and color difference (Cb, Cr).
  • block may be used as a partial area or processing unit of an image (picture) (not a block of a 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.
  • the “block” in this case includes any partial area (processing unit) such as TB, TU, PB, PU, SCU, CU, LCU (CTB), sub-block, macroblock, tile, or slice. Is included.
  • FIG. 6 is a diagram for explaining the QTBT employed in JVET.
  • the formation of a CU is performed by recursively dividing one block into four or two sub-blocks, resulting in a quad-tree shape, or 2 A binary-tree tree structure is formed.
  • PU and TU are the same as CU.
  • Example of inter prediction processing based on two motion vectors for rectangular PU 7 and 8 are diagrams for explaining the inter prediction process based on two motion vectors for a rectangular PU.
  • the PU 61 to be predicted is a vertically long rectangle having a size H in the y direction larger than a size W in the x direction.
  • the prediction image of the PU 61 is generated by performing affine transformation on the block 62 in the reference image of based on the motion vector v 0 and the motion vector v 1 .
  • the block 62 is a block having a point A ′ separated from the vertex A by the motion vector v 0 as an upper left vertex and a point B ′ separated from the vertex B by the motion vector v 1 as an upper right vertex.
  • the error e 0 is generated in the motion vector v
  • the error e 1 is generated in the motion vector v 1
  • the motion vectors v 0 + e 0 and motion A predicted image of the PU 61 is generated by performing affine transformation based on the vector v 1 + e 1 .
  • the block 71 uses a point A ′′ separated from the vertex A by a motion vector v 0 + e 0 as an upper left vertex, and a point B ′′ separated from the vertex B by a motion vector v 1 + e 1 as an upper right vertex. It is a block.
  • Error of the motion vector v for each motion compensation block PU61 is subject to errors e 1 vector v 1 and motion error e 0 motion vector v 0 to be used in the calculation of the motion vector v.
  • the influence becomes greater as the distance from the vertex A corresponding to the motion vector v 0 and the vertex B corresponding to the motion vector v 1 increases.
  • the vertex A and the vertex B are arranged in the x direction, which is the short side direction of the PU 61. Therefore, the distance between the vertex C and the vertex A facing the vertex A, and the vertex B The distance between vertex D and vertex B facing each other is large.
  • the deviation between the block 62 and the block 71 becomes large. Therefore, the accuracy of the predicted image is reduced, and the residual between the PU 61 and the predicted image is increased. As a result, when the orthogonally transformed residual is not made zero by quantization, the coding efficiency of the coded stream including the quantized residual deteriorates. In addition, when the orthogonally transformed residual is made zero by quantization, the accuracy of the predicted image is lowered, and thus the image quality of the decoded image is lowered.
  • FIG. 9 is a diagram illustrating an inter prediction process based on three motion vectors for a rectangular PU.
  • a predicted image of the PU 61 is generated by performing affine transformation on the block 72 in the reference image at the time based on the motion vectors v 0 to v 2 .
  • the block 72 uses the point A ′ separated from the vertex A by the motion vector v 0 as the upper left vertex, the point B ′ separated from the vertex B by the motion vector v 1 as the upper right vertex, and the motion vector v from the vertex C. This is a block having a point C ′ separated by 2 at the lower left vertex.
  • the block 73 in the reference image is moved to the motion vectors v 0 + e 0 , v 1 + e 1 , and A predicted image of the PU 61 is generated by performing affine transformation based on v 2 + e 2 .
  • the block 73 uses a point A ′′ separated from the vertex A by a motion vector v 0 + e 0 as an upper left vertex, and a point B ′′ separated from the vertex B by a motion vector v 1 + e 1 as an upper right vertex.
  • This is a block having a point C ′′ separated from the vertex C by a motion vector v 2 + e 2 as a lower left vertex.
  • the motion vector v 2 + e 2 can prevent the error of the motion vector v from becoming larger in the lower motion compensation block in the PU 61 as in the case of FIG.
  • the prediction accuracy of the inter prediction process based on the two motion vectors is improved by changing the positions of the vertices corresponding to the two motion vectors based on the size relationship between the size H and the size W.
  • FIG. 10 is a block diagram illustrating a configuration example of an embodiment of an image encoding device as an image processing device to which the present disclosure is applied.
  • the image encoding apparatus 100 in FIG. 10 is an apparatus that encodes a prediction residual between an image and a predicted image thereof, such as AVC or HEVC.
  • the image encoding apparatus 100 is equipped with the HEVC technology or the technology proposed by JVET.
  • FIG. 10 shows the main components such as the processing unit and the flow of data, and the ones shown in FIG. 10 are not all. That is, in the image coding apparatus 100, there may be a processing unit that is not shown as a block in FIG. 10, or there may be a process or data flow that is not shown as an arrow or the like in FIG.
  • the image coding apparatus 100 performs coding for each CU on a picture that is an input frame-based moving image.
  • control unit 101 of the image coding apparatus 100 performs coding parameters (header information Hinfo, prediction information Pinfo, conversion information Tinfo, and the like) based on external input, RDO (Rate-DistortiontorOptimization), and the like. Set.
  • 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), etc.
  • 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 that defines the image size (horizontal width PicWidth, vertical width PicHeight), bit depth (luminance bitDepthY, fading difference bitDepthC), the maximum value MaxCUSize / minimum value MinCUSize of the CU size, and the like.
  • the content of the header information Hinfo is arbitrary, and any information other than the above-described example may be included in the header information Hinfo.
  • the prediction information Pinfo includes, for example, a split flag indicating whether or not there is a horizontal or vertical division in each division layer at the time of forming the PU (CU). Further, the prediction information Pinfo includes mode information pred_mode_flag indicating whether the prediction process of the PU is an intra prediction process or an inter prediction process for each PU.
  • the prediction information Pinfo includes Merge flag, Affine flag, motion vector 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 based on a prediction vector selected from candidates including a motion vector (hereinafter referred to as an adjacent vector) generated based on a motion vector of an encoded adjacent PU adjacent to the processing target PU. In this mode, inter prediction processing is performed.
  • the AMVP mode is a mode in which inter prediction processing is performed based on a motion vector of a processing target PU.
  • Merge flag is 1 when indicating the merge mode, and 0 when indicating the AMVP mode.
  • Affine flag is information indicating whether motion compensation is performed in the affine transformation mode or motion compensation is performed in the translational movement mode in the inter prediction process.
  • the translational movement mode is a mode in which motion compensation is performed by performing translational movement on the reference image based on one motion vector.
  • the affine transformation mode is a mode in which motion compensation is performed by performing affine transformation on a reference image based on two motion vectors.
  • Affine flag (multiple vector prediction information) is 1 when indicating motion compensation in the affine transformation mode, and 0 when indicating motion compensation in the translational mode.
  • the motion vector information is prediction vector information for specifying a prediction vector from candidates including adjacent vectors when Merge flag is 1, and when the Merge flag is 0, the prediction vector information and the prediction vector are processed. This is the difference from the motion vector of the target PU.
  • the prediction information Pinfo includes two pieces of motion vector information. When Affine flag is zero, one piece of motion vector information is included.
  • the prediction information Pinfo includes intra prediction mode information indicating an intra prediction mode that is a mode of the intra prediction processing.
  • intra prediction mode information indicating an intra prediction mode that is a 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 TBSize indicating the size of TB.
  • TBSize indicating the size of 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 calculation unit 111 sets the input pictures as the encoding target pictures in order, and sets the encoding target CU (PU, TU) for the encoding target picture based on the split flag of the prediction information Pinfo.
  • the calculation unit 111 subtracts the prediction image P (prediction block) of the PU supplied from the prediction unit 119 from the image I (current block) of the PU to be encoded to obtain the prediction residual D, and converts it to the conversion unit 112.
  • the conversion unit 112 Based on the conversion information Tinfo supplied from the control unit 101, the conversion unit 112 performs orthogonal transformation or the like on the prediction residual D supplied from the calculation unit 111 and derives a conversion coefficient Coeff. The conversion unit 112 supplies the conversion 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 level and the like supplied from the quantization unit 113 by a predetermined method. For example, the encoding unit 114 is supplied from the quantization unit 113 and the encoding parameters (header information Hinfo, prediction information Pinfo, conversion information Tinfo, etc.) supplied from the control unit 101 in accordance with the definition of the syntax table. The quantized transform coefficient level level is converted to the syntax value of each syntax element. Then, the encoding unit 114 encodes each syntax value (for example, arithmetic coding such as CABAC (Context-based Adaptive Binary Binary Arithmetic Coding)).
  • CABAC Context-based Adaptive Binary Binary Arithmetic Coding
  • the encoding unit 114 for example, multiplexes encoded data that is a bit string of each syntax element obtained as a result of encoding, and outputs it as an encoded stream.
  • the inverse quantization unit 115 scales (inversely quantizes) the value of the quantized transform coefficient level level supplied from the quantization unit 113 based on the transform information Tinfo supplied from the control unit 101, and after the inverse quantization
  • the conversion coefficient Coeff_IQ is derived.
  • 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 apparatus described later.
  • the inverse transform unit 116 Based on the transform information Tinfo supplied from the control unit 101, the inverse transform unit 116 performs inverse orthogonal transform or the like on the transform coefficient Coeff_IQ supplied from the inverse quantization unit 115, 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 in the image decoding apparatus described later.
  • the calculation unit 117 adds the prediction residual D ′ supplied from the inverse conversion unit 116 and the prediction image P corresponding to the prediction residual D ′ supplied from the prediction unit 119 to add a local decoded image. Derive Rec.
  • the computing unit 117 supplies the local decoded image Rec to the frame memory 118.
  • the frame memory 118 reconstructs a decoded image in units of pictures using the local decoded image Rec supplied from the calculation unit 117 and stores it 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 read image to the prediction unit 119.
  • the frame memory 118 may store header information Hinfo, prediction information Pinfo, conversion information Tinfo, and the like related to the generation of a decoded image in a buffer in the frame memory 118.
  • the prediction unit 119 acquires, as a reference image, a decoded image at the same time as the encoding target CU stored in the frame memory 118 based on the mode information pred_mode_flag of the prediction information Pinfo. And the prediction part 119 performs the intra prediction process of the intra prediction mode which intra prediction mode information shows with respect to PU of encoding object using a reference image.
  • the prediction unit 119 acquires, as a reference image, a decoded image at a time different from the CU to be encoded stored in the frame memory 118 based on the mode information pred_mode_flag of the prediction information Pinfo and the reference image specifying information.
  • the prediction unit 119 performs motion compensation on the reference image in the translational movement mode or the affine transformation mode based on the MergeMflag, Affine flag, and motion vector information, and performs inter prediction processing in the merge mode or AMVP mode.
  • the prediction unit 119 supplies the prediction image P of the encoding target PU generated as a result of the intra prediction process or the inter prediction process to the calculation unit 111 and the calculation unit 117.
  • FIG. 11 is a diagram illustrating two pieces of motion vector information set by the control unit 101 based on RDO.
  • the control unit 101 determines that the upper left corner of the PU 121 is based on RDO. setting the motion vector information of the motion vector v 1 of the motion of the vertex a vector v 0 and upper right vertex B. That is, based on RDO, the control unit 101 moves motion vector information of motion vectors v 0 and v 1 of two vertices A and B arranged in the x direction, which is the direction of the larger size W of size H and size W. Set.
  • the prediction unit 119 performs affine transformation on the block 122 in the reference image at a time different from that of the PU 121 based on the motion vector v 0 and the motion vector v 1 corresponding to the set two motion vector information.
  • a prediction image of the PU 121 is generated.
  • the block 122 is a block having a point A ′ separated from the vertex A by a motion vector v 0 as an upper left vertex and a point B ′ separated from the vertex B by a motion vector v 1 as an upper right vertex.
  • the error e 0 is generated in the motion vector v 0, the error e 1 to the motion vector v 1 is generated, the prediction unit 119, a block 123 in the reference image, motion A predicted image of the PU 121 is generated by performing affine transformation based on the vector v 0 + e 0 and the motion vector v 1 + e 1 .
  • the block 123 uses a point A ′′ separated from the vertex A by a motion vector v 0 + e 0 as an upper left vertex, and a point B ′′ separated from the vertex B by a motion vector v 1 + e 1 as an upper right vertex. It is a block.
  • Error of the motion vector v for each motion compensation block PU121 is subject to errors e 1 vector v 1 and motion error e 0 motion vector v 0 to be used in the calculation of the motion vector v.
  • the influence becomes greater as the distance from the vertex A corresponding to the motion vector v 0 and the vertex B corresponding to the motion vector v 1 increases.
  • the vertex A and the vertex B are arranged in the x direction, which is the long side direction of the PU 121, so that the distance between the vertex C and the vertex A facing the vertex A and the vertex B are opposed.
  • the distance between vertex D and vertex B is small. Therefore, the deviation between the block 122 and the block 123 is smaller than that when the affine transformation is performed based on the motion vectors of the vertex A and the vertex C aligned in the short side direction of the PU 121.
  • the control unit 101 determines the PU 131 based on RDO. setting the motion vector information of the motion vector v 2 of the movement of the upper left vertex a vector v 0 and the lower left vertex C. That is, the control unit 101, based on the RDO, size W and size larger two vertices A and motion vector information of the motion of the vertex C vectors v 0 and v 2 arranged in the y direction is the direction of the H of the H Set.
  • the prediction unit 119 performs affine transformation on the block 132 in the reference image at a time different from that of the PU 131 based on the motion vector v 0 and the motion vector v 2 corresponding to the set two motion vector information.
  • a predicted image of the PU 131 is generated.
  • the block 132 is a block having a point A ′ separated from the vertex A by a motion vector v 0 as an upper left vertex and a point C ′ separated from the vertex C by a motion vector v 2 as a lower left vertex.
  • the error e 0 is generated in the motion vector v 0, when the motion vector v 2 error e 2 is generated, the prediction unit 119, a block 133 in the reference image, motion A predicted image of the PU 131 is generated by performing affine transformation based on the vector v 0 + e 0 and the motion vector v 2 + e 2 .
  • the block 133 sets the point A ′′ separated from the vertex A by the motion vector v 0 + e 0 as the upper left vertex and the point C ′′ separated from the vertex C by the motion vector v 2 + e 2 as the lower left vertex. It is a block.
  • the motion vector v (v x , v y ) of each motion compensation block of the PU 131 is obtained by the following equation (2), and the error of the motion vector v is a motion vector used for calculating the motion vector v. v error e 0 0 and movement affected by the error e 2 of the vector v 2.
  • the influence becomes greater as the distance from the vertex A corresponding to the motion vector v 0 and the vertex C corresponding to the motion vector v 2 increases.
  • the vertex A and the vertex C are arranged in the y direction, which is the long side direction of the PU 131, so that the distance between the vertex B and the vertex A facing the vertex A and the vertex C are opposed.
  • the distance between vertex D and vertex C is small. Accordingly, the deviation between the block 132 and the block 133 is smaller than when affine transformation is performed based on the motion vectors of the vertex A and the vertex B aligned in the short side direction of the PU 131.
  • the predicted image generated by the affine transformation based on the vector v 1 motion and the motion vector v 0, based on the vector v 2 motion and the motion vector v 0 The predicted images generated by the affine transformation are the same.
  • FIG. 12 is a diagram illustrating adjacent vectors that are candidates for prediction vectors.
  • the prediction unit 119 uses the adjacent vector that is a candidate for the prediction vector pv 0 of the motion vector v 0 at the upper left vertex A of the PU 151 to be predicted in FIG. Is generated based on the motion vector of the block a, which is a block b which is the upper encoded PU, or the block c which is the left encoded PU.
  • the prediction unit 119 is a block d that is an encoded PU on the upper side of the PU 151 that has the vertex B as a candidate for the prediction vector pv 1 of the motion vector v 1 at the upper right vertex B of the PU 151. Alternatively, it is generated based on the motion vector of block e, which is the encoded PU on the upper right side.
  • Prediction unit 119 the neighbor vectors, which are candidates of the prediction vector pv 2 motion vectors v 2 vertices C, a left coded PU of PU151 whose vertices vertices C block f, or lower left side It is generated based on the motion vector of block g which is an encoded PU. Note that the motion vectors of the blocks a to g are one motion vector for the block held in the prediction unit 119.
  • the prediction unit 119 uses a combination having the smallest DV obtained by the following equation (3) among the 12 combinations of candidates to generate adjacent vectors that are candidates for the prediction vectors pv 0 to pv 2. 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 to generate the prediction vector pv 0 .
  • v 1x ′ and v 1y ′ are motion vectors in the x and y directions of any of the blocks d and e used to generate the prediction vector pv 1 .
  • v 2x ′ and v 2y ′ are motion vectors in the x and y directions of any of the blocks f and g used to generate the prediction vector pv 2 .
  • Equation (3) affine transformation based on motion vectors v 0 ′ (v 0x ′, v 0y ′) to v 2 ′ (v 2x ′, v 2y ′) DV is reduced when non-impossible skew is performed.
  • FIG. 13 shows an example of a CU (PU) area in which the Affine flag is 1.
  • the white rectangle in the image 170 represents CU (PU) whose Affine flag is 0, and the hatched rectangle represents CU (PU) whose Affine flag is 1. Further, in FIG. 13, only a part of the CUs in the image 170 is illustrated for easy viewing of the drawing.
  • the Affine flag of the blocks d and e adjacent to the vertex B on the right side of the PU 193 in the y direction is 1, the possibility that the left side of the PU 193 is a boundary 194 is high. Therefore, the Affine flag of the PU 193 is likely to be 1.
  • the encoding unit 114 determines whether or not the Affine flag of the adjacent PU adjacent to the vertex of the side in the direction of the larger size of the size W in the x direction of the PU (CU) and the size H in the y direction is 1. Based on the PUBA Affine flag flag CABAC probability model context.
  • the encoding unit 114 encodes the Affine flag of the horizontally long PU 191 with CABAC
  • the Affine flag of the blocks a to e or a predetermined number of blocks f and g is 1
  • the possibility that Affine flag is 1 is high is used as the context of the probability model.
  • the encoding unit 114 determines that the Affine flag of the blocks a to c, f, and g or a predetermined number of blocks of the blocks d and e is greater than or equal to When it is 1, the fact that Affine ⁇ flag is likely to be 1 is used as the context of the probability model.
  • the encoding unit 114 may have the Affine flag of 1. Low is used as the context of the probability model.
  • the encoding unit 114 indicates that the probability that the Affine flag is 1 is high when the Affine flag of the blocks of a predetermined number or more among the blocks a to e is 1. Used as context for
  • the encoding unit 114 uses a low possibility that the Affine flag is 1 as the context of the probability model.
  • the coding unit 114 encodes the Affine flag with CABAC using the fact that the possibility that the Affine flag is 1 is high as the context of the probability model, the probability that the CABAC probability model is 1 is high. In this way, encoding is performed. Thereby, the code amount when Affineffinflag is 1 is smaller than the code amount when Affine flag is 0.
  • the encoding unit 114 sets the CABAC probability model so that the probability of being 0 becomes high when the Affine flag is encoded by CABAC using the low possibility that Affine flag is 1 as a context. Then, encoding is performed. Thereby, the code amount when Affineffinflag is 0 is smaller than the code amount when Affine flag is 1.
  • the encoding unit 114 can reduce the code amount of the Affine flag, which is an overhead, and improve the encoding efficiency.
  • the context may be switched by the number of blocks having AffineAflag equal to 1 instead of switching the context depending on whether the number of blocks having Affine flag equal to or greater than a predetermined number.
  • the probability of being 1 in the CABAC probability model is changed according to the number of blocks whose Affine flag is 1.
  • the encoding unit 114 may switch the code (bit string) assigned to the Affine flag instead of switching the context of the CABAC probability model based on the Affine flag of the blocks a to g.
  • the encoding unit 114 sets the code length (bit length) of the code to be assigned to Affine ⁇ flag being 1 as 0, instead of setting the CABAC probability model so that the probability of being 1 is high. Shorter than flag. Also, instead of setting the CABAC probability model so that the probability of being 0 is high, the encoding unit 114 shortens the code length of the code assigned to Affine flag being 0 compared to Affine flag being 1. To do.
  • FIG. 16 is a flowchart for explaining image coding processing of the image coding apparatus 100 in FIG. 10.
  • step S11 of FIG. 16 the control unit 101 sets encoding parameters (header information Hinfo, prediction information Pinfo, conversion information Tinfo, and the like) based on external input, RDO, and the like.
  • the control unit 101 supplies the set encoding parameter to each block.
  • step S12 the prediction unit 119 determines whether or not the mode information pred_mode_flag of the prediction information Pinfo indicates inter prediction processing. If it is determined in step S12 that the inter prediction process is indicated, in step S13, the prediction unit 119 determines whether Merge flag of the prediction information Pinfo is 1.
  • step S14 the prediction unit 119 determines whether Affineffinflag of the prediction information Pinfo is 1. If it is determined in step S14 that Affine flag is 1, the process proceeds to step S15.
  • step S15 the prediction unit 119 performs motion compensation in the affine transformation mode, and uses the predicted image P generated by performing the inter prediction processing in the merge mode to perform the merge affine transformation that encodes the image I to be coded.
  • a mode encoding process is performed. Details of the merge affine transformation mode encoding process will be described with reference to FIG. After the merge affine transformation mode encoding process ends, the image encoding process ends.
  • step S14 determines whether Affine flag is not 1, that is, if Affine flag is 0, the process proceeds to step S16.
  • step S16 the prediction unit 119 performs motion compensation in the translational movement mode, and encodes the image I to be encoded using the prediction image P generated by performing inter prediction processing in the merge mode. Process. After the merge mode encoding process ends, the image encoding process ends.
  • step S17 If it is determined in step S13 that MergeMflag is not 1, that is, if Merge flag is 0, in step S17, the prediction unit 119 determines whether Affine flag of the prediction information Pinfo is 1. . If it is determined in step S17 that Affine flag is 1, the process proceeds to step S18.
  • step S18 the prediction unit 119 performs motion compensation in the affine transformation mode, and encodes the image I to be encoded using the prediction image P generated by performing the AMVP mode inter prediction processing.
  • a mode encoding process is performed. Details of the AMVP affine transformation mode encoding process will be described with reference to FIG. After the AMVP affine transformation mode encoding process ends, the image encoding process ends.
  • step S17 determines whether Affine flag is not 1, that is, if Affine flag is 0, the process proceeds to step S19.
  • step S19 the prediction unit 119 performs motion compensation in the translational movement mode, and encodes the image I to be encoded using the prediction image P generated by performing inter prediction processing in the AMVP mode. Process. After the AMVP mode encoding process ends, the image encoding process ends.
  • step S12 If it is determined in step S12 that the inter prediction process is not indicated, that is, if the mode information pred_mode_flag indicates the intra prediction process, the process proceeds to step S20.
  • step S20 the prediction unit 119 performs an intra encoding process for encoding the image I to be encoded using the prediction image P generated by the intra prediction process. Then, the image encoding process ends.
  • FIG. 17 is a flowchart illustrating a first example of an inter prediction processing mode setting process for setting MergeMflag and Affine flag in the process of step S11 of FIG.
  • This inter prediction process mode setting process is performed, for example, in units of PU (CU).
  • step S41 in FIG. 17 the control unit 101 controls each block to perform merge mode encoding processing for each prediction information Pinfo other than the merge flag and affine flag that are candidates for the PU (CU) to be processed.
  • the RD cost is calculated 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.
  • step S42 the control unit 101 controls each block, performs AMVP mode encoding processing for each prediction information Pinfo other than the merge flag and affine flag that are candidates for the PU (CU) to be processed, and performs RD Calculate the cost J AMVP .
  • step S43 the control unit 101 controls each block to perform merge affine transformation mode encoding processing for each prediction information Pinfo other than the merge flag and affine flag as candidates for the processing target PU (CU). And calculate the RD cost J MRGAFFINE .
  • step S44 the control unit 101 controls each block to perform AMVP affine transformation mode encoding processing for each prediction information Pinfo other than the merge flag and affine flag that are candidates for the PU (CU) to be processed. , RD cost J AMVPAFFINE is calculated.
  • step S45 the control unit 101 determines whether the RD cost J MRG is the smallest among the RD costs J MRG , J AMVP , J MRGAFFINE , and J AMVPAFFINE .
  • step S46 the control unit 101 sets the merge flag of the processing target PU to 1 and sets the affine flag to 0. Then, the inter prediction process mode setting process ends.
  • step S45 If it is determined in step S45 that the RD cost JMRG is not the minimum, the process proceeds to step S47.
  • step S47 the control unit 101 determines whether the RD cost J AMVP is the smallest among the RD costs J MRG , J AMVP , J MRGAFFINE , and J AMVPAFFINE .
  • step S48 the control unit 101 sets the merge flag and the affinity flag of the processing target PU to 0, and ends the inter prediction processing mode setting process. To do.
  • step S47 determines whether the RD cost J MRGAFFINE is the smallest among the RD costs J MRG , J AMVP , J MRGAFFINE , and J AMVPAFFINE .
  • step S50 the control unit 101 sets the merge flag and affinity flag of the processing target PU to 1, and ends the inter prediction processing mode setting process. To do.
  • step S49 if it is determined in step S49 that the RD cost J MRGAFFINE is not the minimum, that is, if the RD cost J AMVPAFFINE is the minimum among the RD costs J MRG , J AMVP , J MRGAFFINE , and J AMVPAFFINE , Proceed to S51.
  • step S51 the control unit 101 sets the merge flag of the processing target PU to 0, and sets the affinity flag to 1. Then, the inter prediction process mode setting process ends.
  • FIG. 18 is a flowchart for explaining a second example of the inter prediction process mode setting process for setting Merge flag and Affine flag in the process of step S11 of FIG.
  • This inter prediction process mode setting process is performed, for example, in units of PU (CU).
  • step S73 the control unit 101 determines whether the y-direction size H of the processing target PU is smaller than the x-direction size W. If it is determined in step S73 that the size H is smaller than the size W, that is, if the shape of the processing target PU is a horizontally long rectangle, the process proceeds to step S74.
  • step S74 the control unit 101 determines whether or not the Affine flag of the blocks a to e adjacent to the processing target PU or a predetermined number of blocks f and g is 1 or more.
  • step S74 When it is determined in step S74 that the Affine flag of the blocks a to e or the predetermined number or more of the blocks f and g is 1, the control unit 101 sets the Affine flag of the processing target PU to 1. It is determined that there is a high possibility, and the process proceeds to step S78.
  • step S73 determines whether or not the size H in the y direction of the processing target PU is larger than the size W in the x direction. If it is determined in step S75 that the size H is larger than the size W, that is, if the shape of the PU to be processed is a vertically long rectangle, the process proceeds to step S76.
  • step S76 the control unit 101 determines whether the Affine flag of the blocks a to c, f, and g adjacent to the processing target PU or a predetermined number of blocks of the blocks d and e is 1 or not. judge.
  • step S76 When it is determined in step S76 that the Affine flag of the blocks a to c, f, and g or a predetermined number of the blocks d and e is 1 or more, the control unit 101 determines the processing target PU. Judge that Affine flag is likely to be 1. And the control part 101 advances a process to step S78.
  • step S75 determines whether or not the size H is not larger than the size W, that is, if the size H and the size W are the same.
  • step S77 the control unit 101 determines whether or not the Affine flag of a predetermined number or more of the blocks a to g adjacent to the processing target PU is 1.
  • step S77 When it is determined in step S77 that the Affine flag of a predetermined number or more of the blocks a to g is 1, the control unit 101 determines that there is a high possibility that the Affine flag of the processing target PU is 1. Then, the process proceeds to step S78.
  • steps S78 and S79 is the same as the processing in steps S43 and S44 in FIG. After the process of step S79, the process proceeds to step S80.
  • step S74 When it is determined in step S74 that the Affine flag of the blocks a to e or less than the predetermined number of the blocks f and g is 1, the control unit 101 sets the Affine flag of the processing target PU to 1. Judgment is unlikely. And the control part 101 skips step S78 and S79 and advances a process to step S80.
  • step S76 If it is determined in step S76 that the blocks a to c, f, and g, or the blocks A and f that are less than the predetermined number of blocks d and e, are 1, the control unit 101 It is judged that the possibility that the Affine flag of PU is 1 is low. And the control part 101 skips step S78 and S79 and advances a process to step S80.
  • step S77 when it is determined in step S77 that the Affine flag of blocks less than the predetermined number among the blocks a to g is 1, the control unit 101 is unlikely to have an Affine flag of the processing target PU of 1. Judge. And the control part 101 skips step S78 and S79 and advances a process to step S80.
  • step S80 the control unit 101, whether RD cost J MRG is calculated RD cost J MRG, J AMVP, J MRGAFFINE , and J AMVPAFFINE or, is the smallest among RD costs J MRG and J AMVP Determine.
  • step S81 the control unit 101 sets the merge flag of the processing target PU to 1 and sets the affinity flag to 0. Then, the inter prediction process mode setting process ends.
  • step S80 If it is determined in step S80 that the RD cost J MRG is not the minimum, the process proceeds to step S82.
  • step S82 the control unit 101 determines whether the calculated RD costs J MRG , J AMVP , J MRGAFFINE , and J AMVPAFFINE , or the RD costs J MRG and J AMVP are the smallest.
  • step S83 the control unit 101 sets the merge flag and the affinity flag of the processing target PU to 0, and ends the inter prediction processing mode setting process. To do.
  • step S82 determines whether the RD cost J AMVP is the minimum among the calculated RD costs J MRG , J AMVP , J MRGAFFINE , and J AMVPAFFINE , or the RD costs J MRG and J AMVP . Determine.
  • step S85 the control unit 101 sets the merge flag and affine flag of the processing target PU to 1, and ends the inter prediction processing mode setting process. To do.
  • step S84 if it is determined in step S84 that the RD cost J MRGAFFFINE is not the minimum, that is, the RD cost J AMVPAFFINE is calculated as the RD cost J MRG , J AMVP , J MRGAFFINE , and J AMVPAFFINE , or the RD cost J MRG. If it is the smallest among JAMVP and JAMVP , the process proceeds to step S86. In step S86, the control unit 101 sets the merge flag of the processing target PU to 0 and sets the affinity flag to 1. Then, the inter prediction process mode setting process ends.
  • FIG. 19 is a flowchart for explaining merge affine transformation mode encoding processing. This merge affine transformation mode encoding process is performed, for example, in units of CU (PU).
  • the prediction unit 119 determines whether or not the size H of the processing target PU is larger than the size W. If it is determined in step S101 that the size H of the processing target PU is larger than the size W, that is, if the shape of the processing target PU is a vertically long rectangle, the process proceeds to step S102.
  • the prediction unit 119 determines a prediction vector pv 0 and the predicted vector pv 2. Specifically, when the prediction vector information is information for specifying an adjacent vector, the prediction unit 119 uses adjacent motion vectors of the blocks a to g to be the adjacent vectors that become the prediction vectors pv 0 to pv 2. DV for all combinations of motion vectors used to generate. Then, the prediction unit 119 determines the prediction vector pv 0 and the prediction vector pv 2 using a combination of motion vectors that minimizes DV. Then, the process proceeds to step S104.
  • step S101 determines whether the size H of the processing target PU is not larger than the size W, that is, if the shape of the processing target PU is a square or a horizontally long rectangle. If it is determined in step S101 that the size H of the processing target PU is not larger than the size W, that is, if the shape of the processing target PU is a square or a horizontally long rectangle, the process proceeds to step S103. move on.
  • the prediction unit 119 determines a prediction vector pv 0 and prediction vector pv 1. Specifically, when the prediction vector information is information for specifying an adjacent vector, the prediction unit 119 uses adjacent motion vectors of the blocks a to g to be the adjacent vectors that become the prediction vectors pv 0 to pv 2. DV for all combinations of motion vectors used to generate. Then, the prediction unit 119 determines the prediction vector pv 0 and the prediction vector pv 1 using the combination of motion vectors that minimizes DV. Then, the process proceeds to step S104.
  • the prediction unit 119 may perform the process of step S102 instead of the process of step S103. .
  • step S104 the prediction unit 119 uses each prediction vector determined in step S102 or S103 as a motion vector of the processing target PU, and uses the above-described equation (1) or (2) to calculate each motion compensation block.
  • a motion vector v is calculated.
  • the prediction unit 119 sets the prediction vector pv 0 as the motion vector v 0 and the prediction vector pv 2 as the motion vector v 2 .
  • the motion vector v is calculated according to equation (2).
  • the prediction unit 119 sets the prediction vector pv 0 as the motion vector v 0 , the prediction vector pv 1 as the motion vector v 1 , and formula (1). ) To calculate the motion vector v.
  • step S105 the prediction unit 119 translates the reference image block specified by the reference image specifying information stored in the frame memory 118 based on the motion vector v for each motion compensation block, thereby translating the reference image. Affine transformation is performed on.
  • the prediction unit 119 supplies the reference image subjected to motion compensation by affine transformation as the predicted image P to the calculation unit 111 and the calculation unit 117.
  • step S106 the calculation unit 111 calculates the difference between the image I and the predicted image P as the prediction residual D, and supplies it to the conversion unit 112.
  • the amount of data of the prediction residual D obtained in this way is reduced compared to the original image I. Therefore, the data amount can be compressed as compared with the case where the image I is encoded as it is.
  • step S107 based on the conversion information Tinfo supplied from the control unit 101, the conversion unit 112 performs orthogonal transformation or the like on the prediction residual D supplied from the calculation unit 111 to derive a conversion coefficient Coeff.
  • the conversion unit 112 supplies the conversion coefficient Coeff to the quantization unit 113.
  • step S108 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. To do.
  • the quantization unit 113 supplies the quantized transform coefficient level level to the encoding unit 114 and the inverse quantization unit 115.
  • step S109 the inverse quantization unit 115 corresponds the quantization transform coefficient level level supplied from the quantization unit 113 to the quantization characteristics in step S108 based on the transform information Tinfo supplied from the control unit 101. Inverse quantization with the characteristic to be.
  • the inverse quantization unit 115 supplies the transform coefficient Coeff_IQ obtained as a result to the inverse transform unit 116.
  • step S110 the inverse transform unit 116 corresponds to the orthogonal transform or the like in step S107 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. Then, an inverse orthogonal transform or the like is performed to derive a prediction residual D ′.
  • step S111 the calculation unit 117 generates a local decoded image Rec by adding the prediction residual D 'derived by the processing in step S110 to the prediction image P supplied from the prediction unit 119.
  • step S112 the frame memory 118 reconstructs a decoded image in units of pictures using the local decoded image Rec obtained by the processing in step S111, and stores it in a buffer in the frame memory 118.
  • step S113 the encoding unit 114 encodes the encoding parameter set by the process of step S11 in FIG. 16 and the quantized transform coefficient level level obtained by the process of step S108 by a predetermined method.
  • the encoding unit 114 multiplexes the encoded data obtained as a result, and outputs it as an encoded stream to the outside of the image encoding apparatus 100. This encoded stream is transmitted to the decoding side via a transmission path or a recording medium, for example.
  • step S113 When the process of step S113 is completed, the merge affine transformation mode encoding process is completed.
  • FIG. 20 is a flowchart for explaining AMVP affine transformation mode encoding processing. This AMVP affine transformation mode encoding process is performed, for example, in units of CU (PU).
  • steps S131 to S133 in FIG. 20 are the same as the processes in steps S101 to S103 in FIG. 19, description thereof will be omitted.
  • step S134 the prediction unit 119 adds each prediction vector determined in step S132 or S133 and the difference in the motion vector information corresponding to the prediction vector, and calculates the motion vector of the processing target PU. To do.
  • the prediction unit 119 if the predicted vector pv 0 and the predicted vector pv 2 in step S132 is determined, the prediction unit 119, a prediction vector pv 0, the predicted vector pv 0 and the processed PU of the motion vector information The difference dv 0 from the motion vector is added. Then, the prediction unit 119 sets the motion vector obtained as a result of the addition as the motion vector v 0 of the PU to be processed. Further, the prediction unit 119 adds the prediction vector pv 2 and the difference dv 2 between the prediction vector pv 2 of the motion vector information and the motion vector of the processing target PU, and processes the resulting motion vector. and the motion vector v 2 of the target PU.
  • the prediction unit 119 adds the prediction vector pv 0 and the difference dv 0, and uses the resulting motion vector as the PU to be processed. Let the motion vector v 0 be. Further, the prediction unit 119 adds the prediction vector pv 1 and the difference vector dv 1 between the prediction vector pv 1 of the motion vector information and the motion vector of the processing target PU, and processes the resulting motion vector. and the motion vector v 1 of the target PU.
  • step S135 the prediction unit 119 calculates the motion vector v of each motion compensation block using the above-described equation (1) or (2) using the motion vector of the processing target PU calculated in step S134.
  • the prediction unit 119 uses the motion vector v 0 and the motion vector v 2 to calculate the motion vector v according to Equation (2). calculate.
  • the prediction unit 119 calculates the motion vector v using the motion vector v 0 and the motion vector v 1 according to Expression (1).
  • steps S136 to S144 Since the processing of steps S136 to S144 is the same as the processing of steps S105 to S113 in FIG. 19, the description thereof is omitted.
  • FIG. 21 is a flowchart for explaining the Affine flag encoding process for encoding Affine flag in the processes of Step S113 in FIG. 19 and Step S144 in FIG.
  • step S162 When it is determined in step S162 that Affine ⁇ flag of a predetermined number of blocks a to e or blocks f and g is 1, the encoding unit 114 determines that the Affine flag of the processing target PU is 1 It is judged that there is a high possibility. Then, the encoding unit 114 proceeds with the process to step S163.
  • step S163 the encoding unit 114 encodes the Affine flag with CABAC using the fact that the possibility that the Affine flag is 1 is high as the context of the probability model, and ends the Affine flag encoding process.
  • step S161 determines whether the size H is smaller than the size W. If it is determined in step S161 that the size H is not smaller than the size W, the process proceeds to step S164.
  • the processing in steps S164 to S166 is the same as that in steps S75 to S77 in FIG. 18 except that the processing is performed by the encoding unit 114 instead of the control unit 101, and thus the description thereof is omitted.
  • step S165 When it is determined in step S165 that the blocks a to c, f, and g, or the Affine flag of a predetermined number or more of the blocks d and e are 1, the encoding unit 114 determines that the PU to be processed The AffineAflag is likely to be 1. Then, the encoding unit 114 proceeds with the process to step S163.
  • step S166 when it is determined in step S166 that the Affine flag of a predetermined number or more of the blocks a to g is 1, the encoding unit 114 may have an Affine flag of the processing target PU of 1. Judged to be high. Then, the encoding unit 114 proceeds with the process to step S163.
  • step S162 when it is determined in step S162 that the blocks A to e or the blocks A and f that are less than the predetermined number of blocks f and g are 1, the encoding unit 114 determines that the processing target PU has an Affine flag. Is less likely to be 1. Then, the encoding unit 114 proceeds with the process to step S167.
  • step S165 If it is determined in step S165 that the blocks a to c, f, and g, or the blocks A and f that are less than the predetermined number of blocks d and e, are 1, the encoding unit 114 performs processing. It is determined that there is a low possibility that the Affine flag of the PU is 1. Then, the encoding unit 114 proceeds with the process to step S167.
  • step S166 when it is determined in step S166 that the Affine flag of blocks less than the predetermined number among the blocks a to g is 1, the encoding unit 114 may have the Affine flag of the processing target PU as 1. Judged to be low. Then, the encoding unit 114 proceeds with the process to step S167.
  • step S167 the encoding unit 114 encodes the Affine flag with CABAC using the low possibility that the Affine flag is 1 as a context, and ends the Affine flag encoding process.
  • the image encoding device 100 moves two vertices arranged in the direction of the larger size of the size W of the PU in the x direction and the size H in the y direction.
  • a predicted image P of the PU is generated based on the vector. Therefore, it is possible to suppress the influence on the accuracy of the predicted image P caused by the error generated in the motion vector of the vertex of the rectangular PU.
  • the prediction image P of the rectangular PU can be generated with high accuracy.
  • the quantized transform coefficient level level is not zero, the information amount of the quantized transform coefficient level level can be reduced, and the encoding efficiency can be improved.
  • the quantized transform coefficient level level is zero, the image quality of the decoded image can be improved.
  • the image coding apparatus 100 since the image coding apparatus 100 performs affine transformation based on two motion vectors, it can reduce overhead and improve coding efficiency compared to the case of performing affine transformation based on three motion vectors. Can do.
  • FIG. 22 is a block diagram illustrating a configuration example of an embodiment of an image decoding device as an image processing device to which the present technology is applied, which decodes the encoded stream generated by the image encoding device 100 in FIG. 10. .
  • the image decoding apparatus 200 in FIG. 22 decodes the encoded stream generated by the image encoding apparatus 100 by a decoding method corresponding to the encoding method in the image encoding apparatus 100.
  • the image decoding apparatus 200 is equipped with a technique proposed for HEVC and a technique proposed for JVET.
  • FIG. 22 shows main components such as a processing unit and a data flow, and the ones shown in FIG. 22 are not all. That is, in the image decoding apparatus 200, there may be a processing unit that is not shown as a block in FIG. 22, or there may be a process or data flow that is not shown as an arrow or the like in FIG.
  • the image encoding device 100 decodes the encoded stream generated by the image encoding device 100 for each CU.
  • the decoding unit 211 of the image decoding device 200 decodes the encoded stream generated by the image encoding device 100 by a predetermined decoding method corresponding to the encoding method in the encoding unit 114.
  • the decoding unit 211 decodes the encoding parameters (header information Hinfo, prediction information Pinfo, conversion information Tinfo, etc.) and the quantized transform coefficient level level from the bit stream of the encoded stream according to the definition of the syntax table. .
  • the decoding unit 211 divides the LCU based on the split flag included in the encoding parameter, and sequentially sets the CUs corresponding to the respective quantized transform coefficient levels level as decoding target CUs (PU, TU).
  • the decoding unit 211 supplies the encoding parameters to each block. For example, 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. In addition, the decoding unit 211 supplies the quantized transform coefficient level level to the inverse quantization unit 212.
  • the inverse quantization unit 212 scales (inversely quantizes) the value of the quantized transform coefficient level level supplied from the decoding unit 211 to derive the transform coefficient Coeff_IQ. To do.
  • This inverse quantization is an inverse process of quantization performed by the quantization unit 113 (FIG. 10) of the image encoding device 100. Note that the inverse quantization unit 115 (FIG. 10) 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 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 ′. To do.
  • This inverse orthogonal transform is an inverse process of the orthogonal transform performed by the transform unit 112 (FIG. 10) of the image encoding device 100.
  • the inverse transform unit 116 performs inverse orthogonal transform similar to the inverse transform unit 213.
  • the inverse transform unit 213 supplies the obtained prediction residual D ′ to the calculation unit 214.
  • the calculation unit 214 adds the prediction residual D ′ supplied from the inverse conversion unit 213 and the prediction image P corresponding to the prediction residual D ′ to derive a local decoded image Rec.
  • the calculation unit 214 reconstructs a decoded image for each picture unit using the obtained local decoded image Rec, and outputs the obtained decoded image to the outside of the image decoding apparatus 200.
  • the calculation unit 214 supplies the local decoded image Rec to the frame memory 215 as well.
  • the frame memory 215 reconstructs a decoded image for each picture unit using the local decoded image Rec supplied from the calculation unit 214 and stores it 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 read 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, as a reference image, a decoded image at the same time as the encoding target CU stored in the frame memory 215 based on the mode information pred_mode_flag of the prediction information Pinfo. And the prediction part 216 performs the intra prediction process of the intra prediction mode which intra prediction mode information shows with respect to PU of encoding object using a reference image.
  • the prediction unit 216 acquires, as a reference image, a decoded image at a time different from the CU to be encoded stored in the frame memory 215 based on the mode information pred_mode_flag of the prediction information Pinfo and the reference image specifying information. Similar to the prediction unit 119 of FIG. 10, the prediction unit 216 performs motion compensation on the reference image in the translational movement mode or the affine transformation mode based on the Merge flag, the Affine flag, and the motion vector information, and performs merge mode Alternatively, inter prediction processing in AMVP mode is performed. 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. 23 is a flowchart illustrating the image decoding process of the image decoding apparatus 200 in FIG.
  • step S201 the decoding unit 211 decodes the encoded stream supplied to the image decoding apparatus 200, and obtains an encoding parameter and a quantized transform coefficient level level.
  • the decoding unit 211 supplies the encoding parameter to each block.
  • the decoding unit 211 supplies the quantized transform coefficient level level to the inverse quantization unit 212.
  • step S202 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 level to the decoding target CU (PU, TU). Steps S203 to S211 described later are performed for each CU (PU, TU) to be decoded.
  • steps S203 to S205 is the same as the processing in steps S12 to S14 in FIG. 16 except that the processing is performed by the prediction unit 216 instead of the prediction unit 119, and thus description thereof is omitted.
  • step S205 If it is determined in step S205 that Affine flag is 1, the process proceeds to step S206.
  • step S206 the prediction unit 216 performs motion compensation in the affine transformation mode, and merge affine transformation mode decoding processing that decodes the decoding target image using the prediction image P generated by performing the inter prediction processing in the merge mode. I do. Details of the merge affine transformation mode decoding process will be described with reference to FIG. After the merge affine transformation mode decoding process ends, the image decoding process ends.
  • step S205 determines whether Affine flag is not 1, that is, if Affine flag is 0, the process proceeds to step S207.
  • the prediction unit 216 performs a motion compensation in the translational movement mode, and performs a merge mode decoding process for decoding an image to be decoded using the predicted image P generated by performing the inter prediction process in the merge mode. .
  • the image decoding process ends.
  • step S208 the prediction unit 216 determines whether Affine flag of the prediction information Pinfo is 1. . If it is determined in step S208 that Affine flag is 1, the process proceeds to step S209.
  • step S209 the prediction unit 216 performs motion compensation in the affine transformation mode, and decodes an image to be decoded using the predicted image P generated by performing the AMVP mode inter prediction processing.
  • AMVP affine transformation mode decoding processing I do. Details of the AMVP affine transformation mode decoding process will be described with reference to FIG. After the AMVP affine transformation mode decoding process ends, the image decoding process ends.
  • step S208 determines whether the Affine flag is not 1, that is, if the Affine flag is 0, the process proceeds to step S210.
  • step S210 the prediction unit 216 performs motion compensation in the translational movement mode, and performs AMVP mode decoding processing that decodes a decoding target image using the prediction image P generated by performing AMVP mode inter prediction processing. .
  • the image decoding process ends.
  • step S203 If it is determined in step S203 that the inter prediction process is not indicated, that is, if the mode information pred_mode_flag indicates the intra prediction process, the process proceeds to step S211.
  • step S211 the prediction unit 216 performs an intra decoding process of decoding a decoding target image using the predicted image P generated by the intra prediction process. Then, the image decoding process ends.
  • FIG. 24 is a flowchart for explaining the merge affine transformation mode decoding process in step S206 of FIG.
  • step S231 the inverse quantization unit 212 derives a transform coefficient Coeff_IQ by dequantizing the quantized transform coefficient level level obtained by the process in step S201 of FIG.
  • This inverse quantization is the inverse process of the quantization performed in step S108 (FIG. 19) of the image encoding process, and is the same process as the inverse quantization performed in step S109 (FIG. 19) of the image encoding process. is there.
  • step S232 the inverse transform unit 213 performs inverse orthogonal transform or the like on the transform coefficient Coeff_IQ obtained by the process in step S231, and derives a prediction residual D ′.
  • This inverse orthogonal transform is an inverse process of the orthogonal transform performed in step S107 (FIG. 19) of the image encoding process, and is the same process as the inverse orthogonal transform performed in step S110 (FIG. 19) of the image encoding process. is there.
  • steps S233 to S237 is the same as the processing of steps S101 to S105 in FIG. 19 except that the processing is performed by the prediction unit 216 instead of the prediction unit 119, and thus description thereof is omitted.
  • step S2308 the calculation unit 214 adds the prediction residual D ′ supplied from the inverse conversion unit 213 to the prediction image P supplied from the prediction unit 216 to derive a local decoded image Rec.
  • the calculation unit 214 reconstructs a decoded image for each picture unit using the obtained local decoded image Rec, and outputs the obtained decoded image to the outside of the image decoding apparatus 200.
  • the calculation unit 214 supplies the local decoded image Rec to the frame memory 215.
  • step S239 the frame memory 215 reconstructs a decoded image for each picture unit using the local decoded image Rec supplied from the calculation unit 214, and stores the decoded image in a buffer in the frame memory 215. And a process returns to step S206 of FIG. 23, and complete
  • FIG. 25 is a flowchart illustrating the AMVP affine transformation mode decoding process in step S209 of FIG.
  • steps S253 to S258 is the same as the processing of steps S131 to S136 of FIG. 20 except that the processing is performed by the prediction unit 216 instead of the prediction unit 119, and thus the description thereof is omitted.
  • steps S259 and S260 Since the processing in steps S259 and S260 is the same as the processing in steps S238 and S239 in FIG. 24, description thereof is omitted.
  • the image decoding apparatus 200 uses two motion vectors of vertices arranged in the larger size direction among the size W of the PU in the x direction and the size H in the y direction. Based on the above, a predicted image P of the PU is generated. Therefore, it is possible to suppress the influence on the accuracy of the predicted image P caused by the error generated in the motion vector of the vertex of the rectangular PU. As a result, the prediction image P of the rectangular PU can be generated with high accuracy.
  • motion compensation in the intra BC prediction processing is the same as motion compensation in the inter prediction processing. You may make it perform.
  • ⁇ Second Embodiment> (Description of computer to which the present disclosure is applied)
  • 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 the computer.
  • the computer includes, for example, a general-purpose personal computer capable of executing various functions by installing various programs by installing a computer incorporated in dedicated hardware.
  • FIG. 26 is a block diagram showing an example of the hardware configuration of a computer that executes the above-described series of processing by a program.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • an input / output interface 810 is 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 nonvolatile memory, and the like.
  • the communication unit 814 includes a network interface or 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, 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.
  • the program can be received by the communication unit 814 via a wired or wireless transmission medium and installed in the storage unit 813.
  • 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 that is processed in time series in the order described in this specification, or a necessary timing such as in parallel or when a call is made. It may be a program in which processing is performed.
  • FIG. 27 illustrates an example of a schematic configuration of a television apparatus to which the above-described embodiment is applied.
  • the television apparatus 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.
  • Tuner 902 extracts a signal of a desired channel from a broadcast signal received via 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 audio stream of the viewing target program from the encoded bit stream, and outputs each separated stream 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 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. In addition, the decoder 904 outputs 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 the video.
  • the video signal processing unit 905 may cause the display unit 906 to display an application screen supplied via a network.
  • the video signal processing unit 905 may perform additional processing such as noise removal on the video data according to the setting.
  • 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 screen of a display device (for example, a liquid crystal display, a plasma display, or an OELD (Organic Electro Electronum Display) (organic EL display)). Or an image is displayed.
  • a display device for example, a liquid crystal display, a plasma display, or an OELD (Organic Electro Electronum Display) (organic EL display)). Or an image is displayed.
  • 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 outputs audio from the speaker 908.
  • 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 apparatus 900 that receives an encoded stream in which an image is encoded.
  • the control unit 910 includes a processor such as a CPU and memories such as a RAM and a ROM.
  • the memory stores a program 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 apparatus 900 is activated.
  • the CPU controls the operation of the television device 900 according to an operation signal input from the user interface unit 911 by executing the program.
  • 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 apparatus 200 described above. That is, the decoder 904 may decode the encoded data by the method described in each of the above embodiments. In this way, the television device 900 can obtain the same effects as those of the embodiments described above with reference to FIGS.
  • the video signal processing unit 905 encodes image data supplied from the decoder 904, for example, and the obtained encoded data is transmitted via the external interface unit 909. You may enable it to output to the exterior of the television apparatus 900.
  • FIG. 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 the above embodiments. In this way, the television device 900 can obtain the same effects as those of the embodiments described above with reference to FIGS.
  • FIG. 28 shows an example of a schematic configuration of a mobile phone to which the above-described embodiment is applied.
  • a cellular 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, an operation A portion 932 and a bus 933.
  • 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 has various operation modes including a voice call mode, a data communication mode, a shooting mode, and a videophone mode, and is used for sending and receiving voice signals, sending and receiving e-mail or image data, taking images, and recording data. Perform the action.
  • the analog voice signal generated by the microphone 925 is supplied to the voice codec 923.
  • the audio codec 923 converts an analog audio signal into audio data, A / D converts the compressed audio data, and compresses it. 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, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921. In addition, the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
  • the communication unit 922 demodulates and decodes the received signal to generate audio data, and outputs the generated audio data to the audio codec 923.
  • the audio codec 923 decompresses 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 generates character data constituting the e-mail in response to an operation by the 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 email data and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
  • the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
  • the communication unit 922 demodulates and decodes the received signal to restore the email data, and outputs the restored email data to the control unit 931.
  • the control unit 931 displays the content of the electronic mail on the display unit 930, supplies the electronic mail data to the recording / reproducing unit 929, and writes the data in 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, magnetic disk, magneto-optical disk, optical disk, USB (Universal Serial Bus) memory, or memory card. It may be a storage medium.
  • the camera unit 926 images a subject to generate image data, and outputs the generated image data to the image processing unit 927.
  • the image processing unit 927 encodes the image data input from the camera unit 926, supplies the encoded stream to the recording / reproducing unit 929, and writes the encoded stream in the storage medium.
  • the recording / reproducing unit 929 reads out the encoded stream recorded in 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 the image data to the display unit 930, and displays the image.
  • the 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 the multiplexed stream is the communication unit 922. Output to.
  • the communication unit 922 encodes and modulates the stream and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
  • the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
  • These transmission signal and reception signal may include an encoded bit stream.
  • the communication unit 922 demodulates and decodes the received signal to restore the stream, and outputs the restored stream to the demultiplexing unit 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 a series of images is displayed on the display unit 930.
  • the audio codec 923 decompresses the audio stream 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 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.
  • the cellular phone 920 can obtain the same effects as those of the embodiments described above with reference to FIGS.
  • 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.
  • the cellular phone 920 can obtain the same effects as those of the embodiments described above with reference to FIGS.
  • FIG. 29 shows 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 audio data and video data of a received broadcast program and records the encoded data on a recording medium.
  • the recording / reproducing device 940 may encode audio data and video data acquired from another device and record them on a recording medium, for example.
  • the recording / reproducing device 940 reproduces data recorded on the recording medium on a monitor and a speaker, for example, in accordance with a user instruction. At this time, the recording / reproducing device 940 decodes the audio data and the video data.
  • the recording / reproducing apparatus 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.
  • 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 serves as a transmission unit in the recording / reproducing apparatus 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, or a flash memory interface.
  • IEEE Institute of Electrical and Electronic Engineers 1394 interface
  • a network interface e.g., a USB interface
  • a flash memory interface e.g., a flash memory interface.
  • 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 apparatus 940.
  • the encoder 943 encodes video data and audio data when the video data and 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, various programs, and other data in which content data such as video and audio is compressed in an internal hard disk. Further, the HDD unit 944 reads out these data from the hard disk when reproducing video and audio.
  • the disk drive 945 performs recording and reading of data to and from the mounted recording medium.
  • Recording media mounted on the disk drive 945 are, for example, DVD (Digital Versatile Disc) discs (DVD-Video, DVD-RAM (DVD -Random Access Memory), DVD-R (DVD-Recordable), DVD-RW (DVD-). Rewritable), DVD + R (DVD + Recordable), DVD + RW (DVD + Rewritable), etc.) or 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. In addition, the selector 946 outputs the encoded bit stream input from the HDD unit 944 or the disk drive 945 to the decoder 947 during video and audio reproduction.
  • the decoder 947 decodes the encoded bit stream and generates 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. Further, the OSD unit 948 may superimpose a GUI image such as a menu, a button, or a cursor on the video to be displayed.
  • a GUI image such as a menu, a button, or a cursor
  • the control unit 949 includes a processor such as a CPU and memories 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 apparatus 940 is activated, for example.
  • the CPU executes the program to control the operation of the recording / reproducing device 940 in accordance with, 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 the 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 above-described image encoding apparatus 100. That is, the encoder 943 may encode the image data by the method described in each of the above embodiments. By doing in this way, the recording / reproducing apparatus 940 can acquire the effect similar to each embodiment mentioned above with reference to FIG. 10 thru
  • the decoder 947 may have the function of the image decoding apparatus 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 in this way, the recording / reproducing apparatus 940 can acquire the effect similar to each embodiment mentioned above with reference to FIG. 10 thru
  • FIG. 30 illustrates an example of a schematic configuration of an imaging apparatus to which the above-described embodiment is applied.
  • the imaging device 960 images a subject to generate an image, encodes the image data, and records it 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.
  • 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 connects 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 to each other.
  • the optical block 961 includes a focus lens and a diaphragm mechanism.
  • the optical block 961 forms an optical image of the subject on the 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 the imaging surface into an image signal as an electrical 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. In addition, 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. In addition, the image processing unit 964 may display the image by outputting the image data input from the signal processing unit 963 to the display unit 965. Further, the image processing unit 964 may superimpose display data acquired from the OSD unit 969 on an 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 a USB input / output terminal, for example.
  • the external interface unit 966 connects the imaging device 960 and a printer, for example, when printing an image.
  • 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 attached to 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 mounted on 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.
  • a recording medium may be fixedly mounted on the media drive 968, and a non-portable storage unit such as an internal hard disk drive or an SSD (Solid State Drive) may be configured.
  • the control unit 970 includes a processor such as a CPU and memories 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 an operation signal input from the user interface unit 971 by executing the program.
  • 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 in this way, the imaging device 960 can obtain the same effect as each embodiment described above with reference to FIGS. 10 to 25.
  • 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 in this way, the imaging device 960 can obtain the same effect as each embodiment described above with reference to FIGS. 10 to 25.
  • the present technology may be any configuration installed in an arbitrary device or a device constituting the 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, etc. It can also be implemented as a set in which other functions are further added to the unit (that is, a partial configuration of the apparatus).
  • FIG. 31 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. 31 has such a multi-functional configuration, and the function is added to a device having a function related to image encoding and decoding (either one or both). It is a combination of devices having other related functions.
  • a video set 1300 includes a module group such as a video module 1311, an external memory 1312, a power management module 1313, and a front-end module 1314, and a related group such as a connectivity 1321, a camera 1322, and a sensor 1323. And a device having a function.
  • a module is a component that has several functions that are related to each other and that has a coherent function.
  • 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 arranged on a wiring board or the like can be considered. . It is also possible 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 configurations having functions related to image processing, and includes an application processor, a video processor, a broadband modem 1333, and an RF module 1334.
  • a processor is a configuration in which a configuration having a predetermined function is integrated on a semiconductor chip by a SoC (System On a Chip), and for example, there is a system LSI (Large Scale Integration).
  • 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 using them. , Or a combination of both.
  • a processor has a logic circuit and a CPU, ROM, RAM, etc., a part of the function is realized by a logic circuit (hardware configuration), and other functions are executed by the CPU (software configuration) It may be realized by.
  • the 31 is a processor that executes an application relating to image processing.
  • the application executed in the application processor 1331 not only performs arithmetic processing to realize a predetermined function, but also can control the internal and external configurations of the video module 1311 such as the video processor 1332 as necessary. .
  • the video processor 1332 is a processor having a function related to image encoding / decoding (one or both of them).
  • the broadband modem 1333 converts the data (digital signal) transmitted by wired or wireless (or both) broadband communication via a broadband line such as the Internet or a public telephone line network into an analog signal by digitally modulating the data.
  • the analog signal received by the broadband communication is demodulated and converted into data (digital signal).
  • the broadband modem 1333 processes arbitrary information such as image data processed by the video processor 1332, a stream obtained by encoding the image data, an application program, setting data, and the like.
  • the RF module 1334 is a module that performs frequency conversion, modulation / demodulation, amplification, filter processing, and the like on an RF (Radio Frequency) signal transmitted / received via an antenna. For example, the RF module 1334 generates an RF signal by performing frequency conversion or the like on the baseband signal generated by the broadband modem 1333. Further, for example, the RF module 1334 generates a baseband signal by performing frequency conversion or the like on the RF signal received via the front end module 1314.
  • RF Radio Frequency
  • the application processor 1331 and the video processor 1332 may be integrated and configured as one processor.
  • the external memory 1312 is a module that is provided outside the video module 1311 and has 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 a large amount of data such as image data in units of frames. For example, it is desirable to realize it with a relatively inexpensive and large-capacity semiconductor memory such as 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 (circuit on the transmitting / receiving end on the antenna side). As illustrated in FIG. 31, 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 and receiving a radio signal and its peripheral configuration.
  • the antenna unit 1351 transmits the signal supplied from the amplification unit 1353 as a radio signal, and supplies the received radio signal to the filter 1352 as an electric signal (RF signal).
  • the filter 1352 performs a filtering process on the RF signal received via the antenna unit 1351 and supplies the processed RF signal to the RF module 1334.
  • the amplifying unit 1353 amplifies the RF signal supplied from the RF module 1334 and supplies the amplified RF signal to the antenna unit 1351.
  • Connectivity 1321 is a module having a function related to 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 compliant with wireless communication standards such as Bluetooth (registered trademark), IEEE 802.11 (for example, Wi-Fi (Wireless Fidelity, registered trademark)), NFC (Near Field Communication), IrDA (InfraRed Data Association), etc. You may make it have a module which has a function, an antenna etc. which transmit / receive the signal based on the standard.
  • the connectivity 1321 has a module having a communication function compliant with a wired communication standard such as USB (Universal Serial Bus), HDMI (registered trademark) (High-Definition Multimedia Interface), or a terminal compliant with the standard. You may do it.
  • the connectivity 1321 may have other data (signal) transmission functions such as analog input / output terminals.
  • the connectivity 1321 may include a data (signal) transmission destination device.
  • the drive 1321 reads and writes data to and from a recording medium such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory (not only a removable medium drive, but also a hard disk, SSD (Solid State Drive) NAS (including Network Attached Storage) and the like.
  • the connectivity 1321 may include an image or audio output device (a monitor, a speaker, or the like).
  • the camera 1322 is a module having a function of capturing a subject and obtaining image data of the subject.
  • Image data obtained by imaging by 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 velocity sensor, an acceleration sensor, an inclination sensor, a magnetic identification sensor, an impact sensor, It is a module having an arbitrary sensor function such as a temperature sensor.
  • the data detected by the sensor 1323 is supplied to the application processor 1331 and used by an application or the like.
  • the configuration described as a module in the above may be realized as a processor, or conversely, 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. 32 illustrates an example of a schematic configuration of a video processor 1332 (FIG. 31) to which the present technology is applied.
  • the video processor 1332 receives the video signal and the audio signal, encodes them in a predetermined method, decodes the encoded video data and audio data, 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.
  • the video processor 1332 includes an encoding / decoding engine 1407, video ES (ElementaryElementStream) 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. 31) and converts it into digital image data.
  • the first image enlargement / reduction unit 1402 performs format conversion, image enlargement / reduction processing, and the like on the image data.
  • the second image enlargement / reduction unit 1403 performs image enlargement / reduction processing on the image data in accordance with the format of the output destination via the video output processing unit 1404, or is the same as the first image enlargement / reduction unit 1402. Format conversion and image enlargement / reduction processing.
  • 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 or the like.
  • 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 the synchronization signal from the encoding / decoding engine 1407, and controls the 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 encoding / decoding engine 1407, the first image enlargement / reduction unit 1402, the second image enlargement / reduction unit 1403, and the like.
  • the encoding / decoding engine 1407 performs encoding processing of image data and decoding processing of a video stream that is data obtained by encoding the image data. For example, the encoding / decoding engine 1407 encodes the image data read from the frame memory 1405 and sequentially writes the data as a video stream in the video ES buffer 1408A. Further, for example, the video stream is sequentially read from the video ES buffer 1408B, decoded, and sequentially written in the frame memory 1405 as image data.
  • the encoding / decoding engine 1407 uses the frame memory 1405 as a work area in the encoding and decoding. Also, the encoding / decoding engine 1407 outputs a synchronization signal to the memory control unit 1406, for example, at a timing at which processing for each macroblock is started.
  • the video ES buffer 1408A buffers the video stream generated by the encoding / decoding engine 1407 and supplies the buffered 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 encoding / decoding 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 buffered audio stream to the audio decoder 1411.
  • the audio encoder 1410 converts, for example, an audio signal input from the connectivity 1321 or the like, for example, into a digital format, and encodes it using a predetermined method such as an MPEG audio method or an AC3 (Audio Code number 3) method.
  • the audio encoder 1410 sequentially writes an audio stream, which is data obtained by encoding an audio signal, in the audio ES buffer 1409A.
  • the audio decoder 1411 decodes the audio stream supplied from the audio ES buffer 1409B, performs conversion to an analog signal, for example, 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 multiplexing) is arbitrary.
  • the multiplexing unit (MUX) 1412 can also add predetermined header information or the like to the bit stream. That is, the multiplexing unit (MUX) 1412 can convert the stream format by multiplexing. For example, the multiplexing unit (MUX) 1412 multiplexes the video stream and the audio stream to convert it into a transport stream that is a bit stream in a transfer format. Further, for example, the multiplexing unit (MUX) 1412 multiplexes the video stream and the audio stream, thereby converting the data into file format data (file data) for recording.
  • the demultiplexing unit (DMUX) 1413 demultiplexes the bit stream in which the video stream and the audio stream are multiplexed by a method corresponding to the multiplexing by the multiplexing unit (MUX) 1412. That is, the demultiplexer (DMUX) 1413 extracts the video stream and the audio stream from the bit stream read from the stream buffer 1414 (separates the video stream and the audio stream). That is, the demultiplexer (DMUX) 1413 can convert the stream format by demultiplexing (inverse conversion of the conversion by the multiplexer (MUX) 1412).
  • the demultiplexing unit (DMUX) 1413 obtains 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 Further, for example, the demultiplexer (DMUX) 1413 obtains the file data read from various recording media by the connectivity 1321, for example, via the stream buffer 1414, and demultiplexes the video stream and the audio. Can be converted to a stream.
  • Stream buffer 1414 buffers the bit stream.
  • the stream buffer 1414 buffers the transport stream supplied from the multiplexing unit (MUX) 1412 and, for example, in the connectivity 1321 or the broadband modem 1333 at a predetermined timing or based on an external request or the like. Supply.
  • MUX multiplexing unit
  • the stream buffer 1414 buffers the file data supplied from the multiplexing unit (MUX) 1412 and supplies it to the connectivity 1321 at a predetermined timing or based on an external request, for example. It is recorded on various recording media.
  • MUX multiplexing unit
  • the stream buffer 1414 buffers a transport stream acquired through, for example, the connectivity 1321 or the broadband modem 1333, and performs a demultiplexing unit (DMUX) at a predetermined timing or based on a request from the outside. 1413.
  • DMUX demultiplexing unit
  • the stream buffer 1414 buffers file data read from various recording media in, for example, the connectivity 1321, and the demultiplexer (DMUX) 1413 at a predetermined timing or based on an external request or the like. To supply.
  • DMUX demultiplexer
  • 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 format by the video input processing unit 1401 and stored in the frame memory 1405.
  • This digital image data is read by the first image enlargement / reduction unit 1402 or the second image enlargement / reduction unit 1403, and format conversion to a predetermined method such as 4: 2: 0Y / Cb / Cr method and enlargement / reduction processing are performed. Is written again in the frame memory 1405.
  • This image data is encoded by the encoding / decoding engine 1407 and written as a video stream in the video ES buffer 1408A.
  • an audio signal input from the connectivity 1321 or the like to the video processor 1332 is encoded by the audio encoder 1410 and written as an audio stream in 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 and multiplexed by the multiplexing unit (MUX) 1412 and converted into a transport stream, file data, or the like.
  • the transport stream generated by the multiplexing unit (MUX) 1412 is buffered in the stream buffer 1414 and then output to the 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 from an external network to the video processor 1332 via the connectivity 1321 or the broadband modem 1333 is buffered in the stream buffer 1414 and then demultiplexed by the demultiplexer (DMUX) 1413.
  • DMUX demultiplexer
  • file data read from various recording media by the connectivity 1321 and input to the video processor 1332 is buffered by the stream buffer 1414 and then demultiplexed by the demultiplexer (DMUX) 1413. That is, the transport stream or file data input to the video processor 1332 is separated into a video stream and an audio stream by the demultiplexer (DMUX) 1413.
  • the audio stream is supplied to the audio decoder 1411 via the audio ES buffer 1409B and decoded to reproduce the audio signal.
  • the video stream is written to the video ES buffer 1408B, and then sequentially read and decoded by the encoding / decoding engine 1407, and written to the frame memory 1405.
  • the decoded image data is enlarged / reduced by the second image enlargement / reduction unit 1403 and written to the frame memory 1405.
  • the decoded image data is read out to the video output processing unit 1404, format-converted to a predetermined system such as 4: 2: 2Y / Cb / Cr system, and further converted into an analog signal to be converted into a video signal. Is played out.
  • the present technology when the present technology is applied to the video processor 1332 configured as described above, the present technology according to each embodiment described above may be applied to the encoding / decoding engine 1407. That is, for example, the encoding / decoding engine 1407 may have the above-described function of the image encoding device 100 and / or the function of the image decoding device 200. By doing so, the video processor 1332 can obtain the same effects as those of the embodiments described above with reference to FIGS.
  • 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. 33 illustrates another example of a schematic configuration of a video processor 1332 to which the present technology is applied.
  • the video processor 1332 has a function of encoding and decoding video data by a predetermined method.
  • the video processor 1332 includes 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 includes, for example, a main CPU 1531, a sub CPU 1532, and a system controller 1533.
  • the main CPU 1531 executes a program and 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 and supplies it 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, or 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 the image data to, for example, the connectivity 1321 under the control of the control unit 1511.
  • the display interface 1512 converts image data of digital data into an analog signal, and outputs it to a monitor device or the like of the connectivity 1321 as a reproduced video signal or as image data of the digital data.
  • the display engine 1513 Under the control of the control unit 1511, the display engine 1513 performs various conversion processes such as format conversion, size conversion, color gamut conversion, and the like so as to match the image data with hardware specifications such as a monitor device that displays the image. I do.
  • the image processing engine 1514 performs predetermined image processing such as filter processing for improving image quality on the image data under the control of the control unit 1511.
  • the internal memory 1515 is a memory provided in the video processor 1332 that is shared by the display engine 1513, the image processing engine 1514, and the codec engine 1516.
  • the internal memory 1515 is used, for example, for data exchange performed between the display engine 1513, the image processing engine 1514, and the codec engine 1516.
  • 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 (eg, upon request). This 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 a small amount of data such as image data or parameters in units of blocks. It is desirable to realize a semiconductor memory having a relatively small capacity but a high response speed (for example, as compared with the external memory 1312) such as “Static Random Access Memory”.
  • the codec engine 1516 performs processing related to encoding and decoding of image data.
  • the encoding / decoding scheme supported by the codec engine 1516 is arbitrary, and the number thereof may be one or plural.
  • the codec engine 1516 may be provided with codec functions of a plurality of encoding / decoding schemes, and may be configured to perform encoding of image data or decoding of encoded data using one selected from them.
  • the codec engine 1516 includes, for example, MPEG-2 video 1541, AVC / H.2641542, HEVC / H.2651543, HEVC / H.265 (Scalable) 1544, as function blocks for processing related to the codec.
  • HEVC / H.265 (Multi-view) 1545 and MPEG-DASH 1551 are included.
  • MPEG-2 Video1541 is a functional block that encodes and decodes image data in the MPEG-2 format.
  • AVC / H.2641542 is a functional block that encodes and decodes image data using the AVC method.
  • 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 multi-view encodes or multi-view decodes image data using the HEVC method.
  • MPEG-DASH 1551 is a functional block that transmits and receives image data using the MPEG-DASH (MPEG-Dynamic Adaptive Streaming over HTTP) method.
  • MPEG-DASH is a technology for streaming video using HTTP (HyperText Transfer Protocol), and selects and transmits appropriate data from multiple encoded data with different resolutions prepared in advance in segments. This is one of the features.
  • MPEG-DASH 1551 generates a stream compliant with the standard, controls transmission of the stream, and the like.
  • MPEG-2 Video 1541 to HEVC / H.265 (Multi-view) 1545 described above are used. Is used.
  • 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.
  • a multiplexing / demultiplexing unit (MUX DMUX) 1518 performs multiplexing and demultiplexing of various data related to images such as a bit stream of encoded data, image data, and a video signal.
  • This multiplexing / demultiplexing method is arbitrary.
  • 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 (MUX DMUX) 1518 not only divides one data into a plurality of data but also adds predetermined header information or the like to each divided data. it can.
  • the multiplexing / demultiplexing unit (MUX DMUX) 1518 can convert the data format by multiplexing / demultiplexing.
  • the multiplexing / demultiplexing unit (MUX DMUX) 1518 multiplexes the bitstream, thereby transporting the transport stream, which is a bit stream in a transfer format, or data in a file format for recording (file data).
  • the transport stream which is a bit stream in a transfer format, or data in a file format for recording (file data).
  • file data file format for recording
  • the network interface 1519 is an interface for a broadband modem 1333, connectivity 1321, etc., for example.
  • the video interface 1520 is an interface for the connectivity 1321, the camera 1322, and the like, for example.
  • the transport stream is supplied to the multiplexing / demultiplexing unit (MUX DMUX) 1518 via the network interface 1519.
  • MUX DMUX multiplexing / demultiplexing unit
  • 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, subjected to predetermined conversion by the display engine 1513, and is connected to, for example, the connectivity 1321 through the display interface 1512. 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 a multiplexing / demultiplexing unit (MUX DMUX) 1518, converted into file data, and video
  • MUX DMUX multiplexing / demultiplexing unit
  • encoded data file data obtained by encoding image data read from a recording medium (not shown) by the connectivity 1321 or the like is transmitted through a video interface 1520 via a 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 the image processing engine 1514, subjected to predetermined conversion by the display engine 1513, and supplied to, for example, the connectivity 1321 through the 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 (MUX DMUX) 1518, and converted into a transport stream,
  • the data is supplied to, for example, the connectivity 1321 and the broadband modem 1333 via the network interface 1519 and transmitted to another device (not shown).
  • image data and other data are exchanged between the processing units in the video processor 1332 using, for example, the internal memory 1515 or the external memory 1312.
  • the power management module 1313 controls power supply to the control unit 1511, for example.
  • the present technology when the present technology is applied 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.
  • 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. Alternatively, it may be realized by 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, but may be configured as a plurality of semiconductor chips. For example, 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.
  • Video set 1300 can be incorporated into various devices that process image data.
  • the video set 1300 can be incorporated into the television device 900 (FIG. 27), the mobile phone 920 (FIG. 28), the recording / reproducing device 940 (FIG. 29), the imaging device 960 (FIG. 30), or the like.
  • the apparatus can obtain the same effects as those of the embodiments described above with reference to FIGS.
  • the video processor 1332 can implement as a structure to which this technique is applied.
  • the video processor 1332 can be implemented as a video processor to which the present technology is applied.
  • the processor or the video module 1311 indicated by the dotted line 1341 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. Regardless of the configuration, the same effects as those of the embodiments described above with reference to FIGS. 10 to 25 can be obtained.
  • any configuration including the video processor 1332 can be incorporated into 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, a television device 900 (FIG. 27), a mobile phone 920 (FIG. 28), a recording / playback device 940 (FIG. 29), It can be incorporated in an imaging device 960 (FIG. 30) or the like.
  • the apparatus obtains the same effects as those of the embodiments described above with reference to FIGS. 10 to 25, as in the case of the video set 1300. be able to.
  • FIG. 34 illustrates an example of a schematic configuration of a network system to which the present technology is applied.
  • a network system 1600 shown in FIG. 34 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 that are communicably connected to the network system 1600.
  • This is a system for providing services related to images (moving images).
  • the cloud service 1601 provides a terminal with a content supply service for images (moving images) such as so-called moving image distribution (on-demand or live distribution).
  • the cloud service 1601 provides a backup service that receives and stores image (moving image) content from a terminal.
  • the cloud service 1601 provides a service that mediates transfer of content of images (moving images) between terminals.
  • the physical configuration of the cloud service 1601 is arbitrary.
  • 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 acquires moving images from terminals, a user (terminal) and a server that manages charging, Any network such as the Internet or a LAN may be provided.
  • the computer 1611 is configured by an information processing apparatus such as a personal computer, a server, a workstation, or the like.
  • 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, or the like.
  • the portable information processing terminal 1613 is configured by 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 household appliance, furniture, other objects, an IC tag, a card type device, and the like.
  • Each of these terminals has a communication function, can connect to the cloud service 1601 (establish a session), and exchange information with the cloud service 1601 (that is, perform communication). Each terminal can also communicate with other terminals. Communication between terminals may be performed via the cloud service 1601 or may be performed without using 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 / decoding may be performed. That is, the terminals (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 in this way, the terminal (computer 1611 thru
  • the term “associate” means, for example, that one data can be used (linked) when one data is processed. That is, the data associated with each other may be collected as one data, or may be individual data. For example, information associated with encoded data (image) may be transmitted on a different transmission path from 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.
  • the “association” may be a part of the data, not 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.
  • this indication can also take the following structures.
  • An image processing apparatus comprising: a prediction unit configured to generate a predicted image of a block based on a motion vector of two vertices arranged in a large size direction of the vertical size and horizontal size of the block.
  • the prediction unit is configured so that a prediction image of an adjacent block adjacent to a vertex of a side in a large size direction of the vertical size and horizontal size of the block is the size of the vertical size and horizontal size of the adjacent block.
  • An encoding unit that encodes multi-vector prediction information indicating that a prediction image of the block is generated based on a motion vector of two vertices arranged in a large size direction of the vertical and horizontal sizes of the block
  • the image processing apparatus according to (1) or (2).
  • the encoding unit is configured such that a prediction image of an adjacent block adjacent to a vertex of a side in a large size direction among the vertical size and horizontal size of the block is a size of the adjacent block in the vertical size and horizontal size.
  • the image processing device configured to encode the multi-vector prediction information based on whether or not the motion vector is generated based on motion vectors of two vertices arranged in a direction of a large size.
  • the encoding unit is based on whether the prediction image of the adjacent block is generated based on motion vectors of two vertices arranged in a larger size direction of the vertical size and the horizontal size of the adjacent block.
  • the image processing device configured to switch a context of a probability model in encoding the multi-vector prediction information.
  • the encoding unit is based on whether the prediction image of the adjacent block is generated based on motion vectors of two vertices arranged in a larger size direction of the vertical size and the horizontal size of the adjacent block.
  • the image processing apparatus according to (4), configured to switch a code of the multi-vector prediction information.
  • the encoding unit When the prediction image of the adjacent block is generated based on a motion vector of two vertices arranged in a larger size direction of the vertical and horizontal sizes of the adjacent block, the encoding unit The code amount is reduced so that a predicted image of a block is smaller than a case in which a predicted image of a block is not generated based on a motion vector of two vertices arranged in a large size direction between the vertical and horizontal sizes of the adjacent blocks.
  • the image processing device according to any one of (4) to (6), configured to encode multi-vector prediction information.
  • the prediction unit predicts the block by performing an affine transformation on the reference image of the block based on a motion vector of two vertices arranged in a direction of a larger size in the vertical and horizontal sizes of the block.
  • the image processing device according to any one of (1) to (7), configured to generate an image.
  • the image processing device An image processing method including a step of generating a predicted image of the block based on a motion vector of two vertices arranged in a direction of a larger size in a vertical size and a horizontal size of the block.

Landscapes

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

Abstract

本開示は、ブロックの2つの頂点の動きベクトルに基づいてブロックの予測画像を生成する場合に、長方形のブロックの予測画像を高精度で生成することができるようにする画像処理装置および画像処理方法に関する。 予測部は、PUの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて、PUの予測画像を生成する。本開示は、例えば、2つの動きベクトルに基づくアフィン変換による動き補償を行い、インター予測処理を行う画像符号化装置等に適用することができる。

Description

画像処理装置および画像処理方法
 本開示は、画像処理装置および画像処理方法に関し、特に、ブロックの2つの頂点の動きベクトルに基づいてブロックの予測画像を生成する場合に、長方形のブロックの予測画像を高精度で生成することができるようにした画像処理装置および画像処理方法に関する。
 ITU-T(International Telecommunication Union Telecommunication Standardization Sector)の次世代ビデオ符号化を探索するJVET(Joint Video Exploration Team)では、2つの頂点の動きベクトルに基づいて参照画像をアフィン変換することによりインター予測処理(Affine motion compensation (MC) prediction)を行うことが提案されている(例えば、非特許文献1および2参照)。これにより、インター予測処理時に、画面間の並進移動(平行移動)や回転方向の動き、並びに、拡大や縮小といった形状の変化を補償して予測画像を生成することができる。
 また、JVETでは、CU(Coding Unit)を形成する技術として、非特許文献3に記載されているQTBT(Quad tree plus binary tree)と呼ばれる技術が採用されている。従って、CUの形状は、正方形だけでなく、長方形になる可能性がある。
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 Feng Zou,"Improved affine motion prediction(JVET-C0062)",JVET of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,26 May-1 June 2016 "EE2.1: Quadtree plus binary tree structure integration with JEM tools(JVET-C0024)" ,JVET of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,2016年5月16日
 PU(Prediction Unit)がCUと同一の長方形のブロックである場合、インター予測処理におけるアフィン変換を、PUの短辺の2つの頂点の動きベクトルに基づいて行うと、長辺の2つの頂点の動きベクトルに基づいて行う場合に比べて、動きベクトルの誤差による予測精度の低下が大きくなる。
 しかしながら、インター予測処理のアフィン変換で用いられる2つの動きベクトルに対応する頂点のPUにおける位置を、PUの形状に応じて変更することは考案されていなかった。従って、PUの形状が長方形である場合、高精度で予測画像を生成することができない場合があった。
 本開示は、このような状況に鑑みてなされたものであり、ブロックの2つの頂点の動きベクトルに基づいてブロックの予測画像を生成する場合に、長方形のブロックの予測画像を高精度で生成することができるようにするものである。
 本開示の一側面の画像処理装置は、ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて、前記ブロックの予測画像を生成する予測部を備える画像処理装置である。
 本開示の一側面の画像処理方法は、本開示の一側面の画像処理装置に対応する。
 本開示の一側面においては、ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて、前記ブロックの予測画像が生成される。
 本開示の一側面によれば、予測画像を生成することができる。また、本開示の一側面によれば、ブロックの2つの頂点の動きベクトルに基づいてブロックの予測画像を生成する場合に、長方形のブロックの予測画像を高精度で生成することができる。
 なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
1つの動きベクトルに基づいて動き補償を行うインター予測処理を説明する図である。 1つの動きベクトルと回転角に基づいて動き補償を行うインター予測処理を説明する図である。 2つの動きベクトルに基づいて動き補償を行うインター予測処理を説明する図である。 3つの動きベクトルに基づいて動き補償を行うインター予測処理を説明する図である。 3つの動きベクトルに基づくアフィン変換前後のブロックを説明する図である。 QTBTを説明する図である。 長方形のPUに対する2つの動きベクトルに基づくインター予測処理を説明する図である。 長方形のPUに対する誤差が発生した2つの動きベクトルに基づくインター予測処理を説明する図である。 長方形のPUに対する3つの動きベクトルに基づくインター予測処理を説明する図である。 画像符号化装置の一実施の形態の構成例を示すブロック図である。 2つの動きベクトル情報を説明する図である。 隣接ベクトルを説明する図である。 Affine flagが1であるCUの領域を示す例である。 Affine flagが1であるCUの領域の境界の例を示す図である。 Affine flagが1であるCUの領域の境界の他の例を示す図である。 画像符号化処理を説明するフローチャートである。 インター予測処理モード設定処理の第1の例を説明するフローチャートである。 インター予測処理モード設定処理の第2の例を説明するフローチャートである。 マージアフィン変換モード符号化処理を説明するフローチャートである。 AMVPアフィン変換モード符号化処理を説明するフローチャートである。 Affine flag符号化処理を説明するフローチャートである。 画像復号装置の一実施の形態の構成例を示すブロック図である。 画像復号処理を説明するフローチャートである。 マージアフィン変換モード復号処理を説明するフローチャートである。 AMVPアフィン変換モード復号処理を説明するフローチャートである。 コンピュータのハードウエアの構成例を示すブロック図である。 テレビジョン装置の概略的な構成の一例を示すブロック図である。 携帯電話機の概略的な構成の一例を示すブロック図である。 記録再生装置の概略的な構成の一例を示すブロック図である。 撮像装置の概略的な構成の一例を示すブロック図である。 ビデオセットの概略的な構成の一例を示すブロック図である。 ビデオプロセッサの概略的な構成の一例を示すブロック図である。 ビデオプロセッサの概略的な構成の他の例を示すブロック図である。 ネットワークシステムの概略的な構成の一例を示すブロック図である。
 以下、本開示の前提および本開示を実施するための形態(以下、実施の形態という)について説明する。なお、説明は以下の順序で行う。
 0.本開示の前提(図1乃至図9)
 1.第1実施の形態:画像処理装置(図10乃至図25)
 2.第2実施の形態:コンピュータ(図26)
 3.第3実施の形態:テレビジョン装置(図27)
 4.第4実施の形態:携帯電話機(図28)
 5.第5実施の形態:記録再生装置(図29)
 6.第6実施の形態:撮像装置(図30)
 7.第7実施の形態:ビデオセット(図31乃至図33)
 8.第8実施の形態:ネットワークシステム(図34)
 <本開示の前提>
 (1つの動きベクトルに基づいて動き補償を行うインター予測処理の説明)
 図1は、1つの動きベクトルに基づいて動き補償を行うインター予測処理を説明する図である。
 なお、以下では、特に断りの無い限り、画像(ピクチャ)の横方向(水平方向)をx方向とし、縦方向(垂直方向)をy方向とする。
 図1に示すように、1つの動きベクトルに基づいて動き補償を行うインター予測処理では、予測対象のPU11(カレントブロック)に対して1つの動きベクトルv(vcx,vcy)が決定される。そして、PU11を含むピクチャ10とは異なる時刻の参照画像内の、PU11から動きベクトルvだけ離れた位置に存在するPU11と同一のサイズのブロック13を、動きベクトルvに基づいて並進移動することにより、PU11の予測画像が生成される。
 即ち、1つの動きベクトルに基づいて動き補償を行うインター予測処理では、参照画像に対してアフィン変換が行われず、画面間の並進移動のみを補償した予測画像が生成される。また、インター予測処理に用いられるパラメータは、vcxとvcyの2つである。このようなインター予測処理は、AVC(Advanced Video Coding)やHEVC(High Efficiency Video Coding)などで採用されている。
 (1つの動きベクトルと回転角に基づいて動き補償を行うインター予測処理の説明)
 図2は、1つの動きベクトルと回転角に基づいて動き補償を行うインター予測処理を説明する図である。
 図2に示すように、1つの動きベクトルと回転角に基づいて動き補償を行うインター予測処理では、予測対象のPU11に対して1つの動きベクトルv(vcx,vcy)と回転角θが決定される。そして、PU11を含むピクチャ10とは異なる時刻の参照画像内の、PU11から動きベクトルvだけ離れた位置に回転角θの傾きで存在するPU11と同一のサイズのブロック21を、動きベクトルvと回転角θに基づいてアフィン変換することにより、PU11の予測画像が生成される。
 即ち、1つの動きベクトルと回転角に基づいて動き補償を行うインター予測処理では、1つの動きベクトルと回転角に基づいて参照画像に対してアフィン変換が行われる。これにより、画面間の並進移動と回転方向の動きを補償した予測画像が生成される。従って、1つの動きベクトルに基づいて動き補償を行うインター予測処理に比べて、予測画像の精度が向上する。また、インター予測処理に用いられるパラメータは、vcx,vcy、およびθの3つである。
 (2つの動きベクトルに基づいて動き補償を行うインター予測処理の説明)
 図3は、2つの動きベクトルに基づいて動き補償を行うインター予測処理を説明する図である。
 図3に示すように、2つの動きベクトルに基づいて動き補償を行うインター予測処理では、予測対象のPU31に対して、PU31の左上の頂点Aにおける動きベクトルv(v0x,v0y)と右上の頂点Bにおける動きベクトルv(v1x,v1y)が決定される。
 そして、PU31を含むピクチャとは異なる時刻の参照画像内の、頂点Aから動きベクトルvだけ離れた点A´を左上の頂点とし、頂点Bから動きベクトルvだけ離れた点B´を右上の頂点とするブロック32を、動きベクトルvと動きベクトルvに基づいてアフィン変換することにより、PU31の予測画像が生成される。
 具体的には、PU31が所定のサイズのブロック(以下、動き補償単位ブロックという)に分割される。そして、各動き補償単位ブロックの動きベクトルv(v,v)が、動きベクトルv(v0x,v0y)と動きベクトルv(v1x,v1y)に基づいて、以下の式(1)により求められる。
Figure JPOXMLDOC01-appb-M000001
 なお、Wは、PU31のx方向のサイズであり、Hは、PU31のy方向のサイズである。従って、PU31が正方形である場合、WとHは等しい。また、x,yは、それぞれ、動き補償単位ブロックのx方向、y方向の位置である。式(1)によれば、動き補償単位ブロックの位置に基づいて、動き補償単位ブロックの動きベクトルvが決定される。
 そして、参照画像内の、各動き補償単位ブロックから動きベクトルvだけ離れた動き補償単位ブロックと同一のサイズのブロックを、動きベクトルvに基づいて並進移動することにより、各動き補償単位ブロックの予測画像を生成する。
 以上のように、2つの動きベクトルに基づいて動き補償を行うインター予測処理では、2つの動きベクトルに基づいて参照画像に対してアフィン変換が行われる。これにより、画面間の並進移動および回転方向の動きだけでなく、拡大や縮小といった形状の変化を補償した予測画像が生成される。従って、1つの動きベクトルと回転角に基づいて動き補償を行うインター予測処理に比べて、予測画像の精度が向上する。また、インター予測処理に用いられるパラメータは、v0x,v0y,v1x、およびv1yの4つである。このようなインター予測処理は、JEM(Joint Exploration Model)参照ソフトウエアで採用されている。
 なお、2つの動きベクトルに基づくアフィン変換は、アフィン変換前後のブロックが矩形であることを前提としたアフィン変換である。アフィン変換前後のブロックが矩形以外の四角形である場合にもアフィン変換を行うためには、3つの動きベクトルが必要である。
 (3つの動きベクトルに基づいて動き補償を行うインター予測処理の説明)
 図4は、3つの動きベクトルに基づいて動き補償を行うインター予測処理を説明する図である。
 図4に示すように、3つの動きベクトルに基づいて動き補償を行うインター予測処理では、予測対象のPU31に対して、動きベクトルv(v0x,v0y)と動きベクトルv(v1x,v1y)だけでなく、左下の頂点Cの動きベクトルv(v2x,v2y)が決定される。
 そして、PU31を含むピクチャとは異なる時刻の参照画像内の、頂点Aから動きベクトルvだけ離れた点A´を左上の頂点とし、頂点Bから動きベクトルvだけ離れた点B´を右上の頂点とし、頂点Cから動きベクトルvだけ離れた点C´を左下の頂点とするブロック42を、動きベクトルv乃至vに基づいてアフィン変換することにより、PU31の予測画像が生成される。
 即ち、3つの動きベクトルに基づいて動き補償を行うインター予測処理では、3つの動きベクトルに基づいて参照画像に対してアフィン変換が行われる。これにより、ブロック42が図5のAに示すように並進移動(Translation)したり、図5のBに示すようにスキュー(Skew)したり、図5のCに示すように回転(Rotation)したり、図5のDに示すように拡大または縮小(Scaling)したりする。
 その結果、画面間の並進移動および回転方向の動き、並びに、拡大や縮小、およびスキューといった形状の変化を補償した予測画像が生成される。なお、図5では、アフィン変換前のブロック42を実線で示し、アフィン変換後のブロック42を点線で示している。
 これに対して、図3で説明した2つの動きベクトルに基づいて動き補償を行うインター予測処理では、予測画像に対して、画面間の並進移動および回転方向の動き、並びに、拡大や縮小といった形状の変化を補償することができるが、スキューを補償することはできない。従って、3つの動きベクトルに基づいて動き補償を行うインター予測処理では、2つの動きベクトルに基づいて動き補償を行うインター予測処理に比べて、予測画像の精度が向上する。
 しかしながら、3つの動きベクトルに基づいて動き補償を行うインター予測処理では、インター予測処理に用いられるパラメータは、v0x,v0y,v1x,v1y,v2x、およびv2yの6つである。従って、1つの動きベクトルと回転角度、または、2つの動きベクトルに基づいて動き補償を行うインター予測処理に比べて、インター予測処理に用いられるパラメータの数が増加する。よって、アフィン変換を用いたインター予測処理の予測精度の向上とオーバーヘッドの抑制とは、トレードオフの関係になる。
 そこで、JVETでは、制御信号により、2つの動きベクトルに基づいて動き補償を行うインター予測処理と3つの動きベクトルに基づいて動き補償を行うインター予測処理を切り替える技術が提案されている。
 (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を説明する図である。
 HEVCでは、1つのブロックを水平方向および垂直方向に分割して4(=2x2)個のサブブロックにのみすることができる。これに対して、QTBTでは、1つのブロックを4(=2x2)個のサブブロックだけでなく、水平方向および垂直方向のいずれか一方にのみ分割して2(=1x2,2x1)個のサブブロックにもすることができる。即ち、QTBTでは、CUの形成は、1つのブロックの4個または2個のサブブロックへの分割を再帰的に繰り返すことにより行われ、結果として四分木(Quad-Tree)状、または、2分木(Binary-Tree)状のツリー構造が形成される。なお、以下では、PUとTUは、CUと同一であるものとする。
 (長方形のPUに対する2つの動きベクトルに基づくインター予測処理の説明)
 図7および図8は、長方形のPUに対する2つの動きベクトルに基づくインター予測処理を説明する図である。
 図7の例では、予測対象のPU61が、x方向のサイズWに比べてy方向のサイズHが大きい縦長の長方形である。この場合、PU61に対して、図3の場合と同様に、2つの動きベクトルに基づいて動き補償を行うインター予測処理が行われると、図7に示すように、PU61を含むピクチャとは異なる時刻の参照画像内のブロック62を、動きベクトルvと動きベクトルvに基づいてアフィン変換することにより、PU61の予測画像が生成される。なお、ブロック62は、頂点Aから動きベクトルvだけ離れた点A´を左上の頂点とし、頂点Bから動きベクトルvだけ離れた点B´を右上の頂点とするブロックである。
 ここで、図8に示すように、動きベクトルvに誤差eが発生し、動きベクトルvに誤差eが発生すると、参照画像内のブロック71を、動きベクトルv+eと動きベクトルv+eに基づいてアフィン変換することにより、PU61の予測画像が生成される。なお、ブロック71は、頂点Aから動きベクトルv+eだけ離れた点A´´を左上の頂点とし、頂点Bから動きベクトルv+eだけ離れた点B´´を右上の頂点とするブロックである。
 PU61の各動き補償ブロックの動きベクトルvの誤差は、その動きベクトルvの計算に用いられる動きベクトルvの誤差eと動きベクトルvの誤差eの影響を受ける。また、その影響は、動きベクトルvに対応する頂点Aと動きベクトルvに対応する頂点Bから遠いほど大きい。
 また、図7および図8の例では、頂点Aと頂点Bは、PU61の短辺方向であるx方向に並んでいるため、頂点Aに対向する頂点Cと頂点Aの距離、および、頂点Bに対向する頂点Dと頂点Bの距離は大きい。
 従って、ブロック62とブロック71のズレは大きくなる。よって、予測画像の精度が低下し、PU61と予測画像との残差が大きくなる。その結果、直交変換された残差が量子化によりゼロにされない場合、量子化後の残差を含む符号化ストリームの符号化効率が悪化する。また、直交変換された残差が量子化によりゼロにされる場合、予測画像の精度が低下しているため、復号画像の画質が低下する。
 (長方形のPUに対する3つの動きベクトルに基づくインター予測処理の説明)
 図9は、長方形のPUに対する3つの動きベクトルに基づくインター予測処理を説明する図である。
 縦長の長方形のPU61に対して、図4の場合と同様に、3つの動きベクトルに基づいて動き補償を行うインター予測処理が行われると、図9に示すように、PU61を含むピクチャとは異なる時刻の参照画像内のブロック72を、動きベクトルv乃至vに基づいてアフィン変換することにより、PU61の予測画像が生成される。なお、ブロック72は、頂点Aから動きベクトルvだけ離れた点A´を左上の頂点とし、頂点Bから動きベクトルvだけ離れた点B´を右上の頂点とし、頂点Cから動きベクトルvだけ離れた点C´を左下の頂点とするブロックである。
 ここで、図9に示すように、動きベクトルv乃至vにそれぞれ誤差e乃至eが発生すると、参照画像内のブロック73を、動きベクトルv+e,v+e、およびv+eに基づいてアフィン変換することにより、PU61の予測画像が生成される。なお、ブロック73は、頂点Aから動きベクトルv+eだけ離れた点A´´を左上の頂点とし、頂点Bから動きベクトルv+eだけ離れた点B´´を右上の頂点とし、頂点Cから動きベクトルv+eだけ離れた点C´´を左下の頂点とするブロックである。
 この場合、動きベクトルv+eにより、図8の場合のように、PU61内の下側の動き補償ブロックほど動きベクトルvの誤差が大きくなることを防止することができる。
 しかしながら、上述したように、3つの動きベクトルに基づくインター予測処理では、パラメータの数が6つであるため、オーバーヘッドが大きくなり、符号化効率が低下する。従って、本開示では、サイズHとサイズWの大小関係に基づいて、2つの動きベクトルに対応する頂点の位置を変更することにより、2つの動きベクトルに基づくインター予測処理の予測精度を向上させる。
 <第1実施の形態>
 (画像符号化装置の構成例)
 図10は、本開示を適用した画像処理装置としての画像符号化装置の一実施の形態の構成例を示すブロック図である。図10の画像符号化装置100は、AVCやHEVCのように、画像とその予測画像との予測残差を符号化する装置である。例えば、画像符号化装置100は、HEVCの技術や、JVETにて提案された技術を実装している。
 なお、図10においては、処理部やデータの流れ等の主なものを示しており、図10に示されるものが全てとは限らない。つまり、画像符号化装置100において、図10においてブロックとして示されていない処理部が存在したり、図10において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
 図10の画像符号化装置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には、例えば、PU(CU)の形成時の各分割階層における水平方向または垂直方向の分割の有無を示すsplit flagが含まれる。また、予測情報Pinfoには、PUごとに、そのPUの予測処理がイントラ予測処理であるか、または、インター予測処理であるかを示すモード情報pred_mode_flagが含まれる。
 モード情報pred_mode_flagがインター予測処理を示す場合、予測情報Pinfoには、Merge flag、Affine flag、動きベクトル情報、参照画像を特定する参照画像特定情報などが含まれる。Merge flagは、インター予測処理のモードが、マージモードであるか、または、AMVPモードであるかを示す情報である。マージモードとは、処理対象のPUに隣接する符号化済みの隣接PUの動きベクトルに基づいて生成される動きベクトル(以下、隣接ベクトルという)を含む候補の中から選択された予測ベクトルに基づいてインター予測処理を行うモードである。AMVPモードとは、処理対象のPUの動きベクトルに基づいてインター予測処理を行うモードである。Merge flagは、マージモードであることを示す場合1であり、AMVPモードであることを示す場合0である。
 Affine flagは、インター予測処理において、アフィン変換モードで動き補償を行うか、または、並進移動モードで動き補償を行うかを示す情報である。並進移動モードとは、1つの動きベクトルに基づいて参照画像に対して並進移動を行うことにより動き補償を行うモードである。アフィン変換モードとは、2つの動きベクトルに基づいて参照画像に対してアフィン変換を行うことにより動き補償を行うモードである。Affine flag(複数ベクトル予測情報)は、アフィン変換モードで動き補償を行うことを示す場合1であり、並進移動モードで動き補償を行うことを示す場合0である。
 動きベクトル情報は、Merge flagが1である場合、隣接ベクトルを含む候補の中から予測ベクトルを特定する予測ベクトル情報であり、Merge flagが0である場合、予測ベクトル情報、および、予測ベクトルと処理対象のPUの動きベクトルとの差分である。また、Affine flagが1である場合、予測情報Pinfoには、2つの動きベクトル情報が含められ、Affine flagが0である場合、1つの動きベクトル情報が含められる。
 モード情報pred_mode_flagがイントラ予測処理を示す場合、予測情報Pinfoには、そのイントラ予測処理のモードであるイントラ予測モードを示すイントラ予測モード情報などが含まれる。もちろん、予測情報Pinfoの内容は任意であり、上述した例以外のどのような情報がこの予測情報Pinfoに含まれるようにしてもよい。
 変換情報Tinfoには、TBのサイズを示すTBSizeなどが含まれる。もちろん、変換情報Tinfoの内容は任意であり、上述した例以外のどのような情報がこの変換情報Tinfoに含まれるようにしてもよい。
 演算部111は、入力されるピクチャを順に符号化対象のピクチャとし、予測情報Pinfoのsplit flagに基づいて、符号化対象のピクチャに対して符号化対象のCU(PU,TU)を設定する。演算部111は、符号化対象のPUの画像I(カレントブロック)から、予測部119から供給されたPUの予測画像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は、例えば、符号化の結果得られる各シンタックス要素のビット列である符号化データを多重化し、符号化ストリームとして出力する。
 逆量子化部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は、予測情報Pinfoのモード情報pred_mode_flagに基づいて、フレームメモリ118に格納された符号化対象のCUと同一時刻の復号画像を参照画像として取得する。そして、予測部119は、参照画像を用いて、符号化対象のPUに対して、イントラ予測モード情報が示すイントラ予測モードのイントラ予測処理を行う。
 また、予測部119は、予測情報Pinfoのモード情報pred_mode_flagと参照画像特定情報に基づいて、フレームメモリ118に格納された符号化対象のCUとは異なる時刻の復号画像を参照画像として取得する。予測部119は、Merge flag、Affine flag、および動きベクトル情報に基づいて、参照画像に対して並進移動モードまたはアフィン変換モードで動き補償を行い、マージモードまたはAMVPモードのインター予測処理を行う。
 予測部119は、イントラ予測処理またはインター予測処理の結果生成される符号化対象のPUの予測画像Pを演算部111や演算部117に供給する。
 (2つの動きベクトル情報の説明)
 図11は、制御部101によりRDOに基づいて設定される2つの動きベクトル情報を説明する図である。
 図11のAに示すように、予測対象のPU121がy方向のサイズHに比べてx方向のサイズWが大きい横長の長方形である場合、制御部101は、RDOに基づいて、PU121の左上の頂点Aの動きベクトルvと右上の頂点Bの動きベクトルvの動きベクトル情報を設定する。即ち、制御部101は、RDOに基づいて、サイズHとサイズWのうちの大きいサイズWの方向であるx方向に並ぶ2つの頂点Aと頂点Bの動きベクトルvとvの動きベクトル情報を設定する。
 従って、予測部119は、PU121とは異なる時刻の参照画像内のブロック122を、設定された2つの動きベクトル情報に対応する動きベクトルvと動きベクトルvに基づいてアフィン変換することにより、PU121の予測画像を生成する。なお、ブロック122は、頂点Aから動きベクトルvだけ離れた点A´を左上の頂点とし、頂点Bから動きベクトルvだけ離れた点B´を右上の頂点とするブロックである。
 ここで、図11のAに示すように、動きベクトルvに誤差eが発生し、動きベクトルvに誤差eが発生すると、予測部119は、参照画像内のブロック123を、動きベクトルv+eと動きベクトルv+eに基づいてアフィン変換することにより、PU121の予測画像を生成する。なお、ブロック123は、頂点Aから動きベクトルv+eだけ離れた点A´´を左上の頂点とし、頂点Bから動きベクトルv+eだけ離れた点B´´を右上の頂点とするブロックである。
 PU121の各動き補償ブロックの動きベクトルvの誤差は、その動きベクトルvの計算に用いられる動きベクトルvの誤差eと動きベクトルvの誤差eの影響を受ける。また、その影響は、動きベクトルvに対応する頂点Aと動きベクトルvに対応する頂点Bから遠いほど大きい。
 しかしながら、図11のAでは、頂点Aと頂点Bは、PU121の長辺方向であるx方向に並んでいるため、頂点Aに対向する頂点Cと頂点Aの距離、および、頂点Bに対向する頂点Dと頂点Bの距離は小さい。従って、ブロック122とブロック123のズレは、PU121の短辺方向に並ぶ頂点Aと頂点Cの動きベクトルに基づいてアフィン変換を行う場合に比べて、小さくなる。
 一方、図11のBに示すように、予測対象のPU131がx方向のサイズWに比べてy方向のサイズHが大きい縦長の長方形である場合、制御部101は、RDOに基づいて、PU131の左上の頂点Aの動きベクトルvと左下の頂点Cの動きベクトルvの動きベクトル情報を設定する。即ち、制御部101は、RDOに基づいて、サイズWとサイズHのうちの大きいサイズHの方向であるy方向に並ぶ2つの頂点Aと頂点Cの動きベクトルvとvの動きベクトル情報を設定する。
 従って、予測部119は、PU131とは異なる時刻の参照画像内のブロック132を、設定された2つの動きベクトル情報に対応する動きベクトルvと動きベクトルvに基づいてアフィン変換することにより、PU131の予測画像を生成する。なお、ブロック132は、頂点Aから動きベクトルvだけ離れた点A´を左上の頂点とし、頂点Cから動きベクトルvだけ離れた点C´を左下の頂点とするブロックである。
 ここで、図11のBに示すように、動きベクトルvに誤差eが発生し、動きベクトルvに誤差eが発生すると、予測部119は、参照画像内のブロック133を、動きベクトルv+eと動きベクトルv+eに基づいてアフィン変換することにより、PU131の予測画像を生成する。なお、ブロック133は、頂点Aから動きベクトルv+eだけ離れた点A´´を左上の頂点とし、頂点Cから動きベクトルv+eだけ離れた点C´´を左下の頂点とするブロックである。
 この場合、PU131の各動き補償ブロックの動きベクトルv(v,v)は、以下の式(2)により求められ、動きベクトルvの誤差は、その動きベクトルvの計算に用いられる動きベクトルvの誤差eと動きベクトルvの誤差eの影響を受ける。また、その影響は、動きベクトルvに対応する頂点Aと動きベクトルvに対応する頂点Cから遠いほど大きい。
Figure JPOXMLDOC01-appb-M000002
 しかしながら、図11のBでは、頂点Aと頂点Cは、PU131の長辺方向であるy方向に並んでいるため、頂点Aに対向する頂点Bと頂点Aの距離、および、頂点Cに対向する頂点Dと頂点Cの距離は小さい。従って、ブロック132とブロック133のズレは、PU131の短辺方向に並ぶ頂点Aと頂点Bの動きベクトルに基づいてアフィン変換を行う場合に比べて、小さくなる。
 なお、動きベクトルv乃至vに誤差が発生していない場合、動きベクトルvと動きベクトルvに基づくアフィン変換により生成される予測画像と、動きベクトルvと動きベクトルvに基づくアフィン変換により生成される予測画像は同一である。
 (隣接ベクトルの説明)
 図12は、予測ベクトルの候補となる隣接ベクトルを説明する図である。
 予測部119は、図12の予測対象のPU151の左上の頂点Aの動きベクトルvの予測ベクトルpvの候補となる隣接ベクトルを、頂点Aを頂点とするPU151の左上の符号化済みのPUであるブロックa、上側の符号化済みのPUであるブロックb、または左側の符号化済みのPUであるブロックcの動きベクトルに基づいて生成する。
 また、予測部119は、PU151の右上の頂点Bの動きベクトルvの予測ベクトルpvの候補となる隣接ベクトルを、頂点Bを頂点とするPU151の上側の符号化済みのPUであるブロックd、または、右上側の符号化済みのPUであるブロックeの動きベクトルに基づいて生成する。
 予測部119は、頂点Cの動きベクトルvの予測ベクトルpvの候補となる隣接ベクトルを、頂点Cを頂点とするPU151の左側の符号化済みのPUであるブロックf、または、左下側の符号化済みのPUであるブロックgの動きベクトルに基づいて生成する。なお、ブロックa乃至gの動きベクトルは、予測部119において保持される、ブロックに対して1つの動きベクトルである。
 以上により、予測ベクトルpv乃至pvの候補となる隣接ベクトルの生成に用いられる動きベクトルの組み合わせの候補は、12(=3×2×2)通りある。予測部119は、この12通りの組み合わせの候補のうち、以下の式(3)により求められるDVが最も小さくなる組み合わせを、予測ベクトルpv乃至pvの候補となる隣接ベクトルの生成に用いられる動きベクトルの組み合わせとして選択する。
Figure JPOXMLDOC01-appb-M000003
 なお、v0x´,v0y´は、予測ベクトルpvの生成に用いられるブロックa乃至cのいずれかのx方向、y方向の動きベクトルである。v1x´,v1y´は、予測ベクトルpvの生成に用いられるブロックdおよびeのいずれかのx方向、y方向の動きベクトルである。v2x´,v2y´は、予測ベクトルpvの生成に用いられるブロックfおよびgのいずれかのx方向、y方向の動きベクトルである。
 式(3)によれば、動きベクトルv´(v0x´,v0y´)乃至v´(v2x´,v2y´)に基づくアフィン変換により、2つの動きベクトルに基づくアフィン変換では不可能なスキュー以外が行われる場合、DVが小さくなる。
 (Affine flagの符号化の説明)
 図13は、Affine flagが1であるCU(PU)の領域を示す例である。
 なお、図13において、画像170内の白色の矩形は、Affine flagが0であるCU(PU)を表し、斜線が付された矩形は、Affine flagが1であるCU(PU)を表す。また、図13では、図面を見やすくするため、画像170内の一部のCUのみを図示している。
 図13に示すように、画像170内のAffine flagが1であるCU(PU)の領域171は、まとまって存在していると推測される。
 従って、例えば、図14のAに示すように、サイズWがサイズHに比べて大きい横長のPU191が存在する場合、PU191のx方向の上辺の頂点Aおよび頂点Bに隣接するブロックa乃至eのAffine flagが1であるとき、PU191の下辺が領域171の境界192である可能性が高い。従って、PU191のAffine flagは1である可能性が高い。
 また、図14のBに示すように、PU191のx方向の下辺の頂点Cに隣接するブロックfおよびgのAffine flagが1であるとき、PU191の上辺が境界192である可能性が高い。従って、PU191のAffine flagは1である可能性が高い。
 一方、図15のAに示すように、サイズHがサイズWに比べて大きい縦長のPU193が存在する場合、PU193のy方向の左辺の頂点Aおよび頂点Cに隣接するブロックa乃至c,f、およびgのAffine flagが1であるとき、PU193の右辺が領域171の境界194である可能性が高い。従って、PU193のAffine flagは1である可能性が高い。
 また、図15のBに示すように、PU193のy方向の右辺の頂点Bに隣接するブロックdおよびeのAffine flagが1であるとき、PU193の左辺が境界194である可能性が高い。従って、PU193のAffine flagは1である可能性が高い。
 よって、符号化部114は、PU(CU)のx方向のサイズWとy方向のサイズHのうちの大きいサイズの方向の辺の頂点に隣接する隣接PUのAffine flagが1であるかどうかに基づいて、そのPUのAffine flagのCABACの確率モデルのコンテキストを切り替える。
 具体的には、符号化部114は、横長のPU191のAffine flagをCABACで符号化する場合、ブロックa乃至e、または、ブロックfおよびgのうちの所定数以上のブロックのAffine flagが1であるとき、Affine flagが1である可能性が高いことを確率モデルのコンテキストとして用いる。
 一方、ブロックa乃至e、または、ブロックfおよびgのうちの所定数未満のブロックのAffine flagが1であるとき、符号化部114は、Affine flagが1である可能性が低いことを確率モデルのコンテキストとして用いる。
 また、縦長のPU193のAffine flagをCABACで符号化する場合、符号化部114は、ブロックa乃至c,f、およびg、または、ブロックdおよびeのうちの所定数以上のブロックのAffine flagが1であるとき、Affine flagが1である可能性が高いことを確率モデルのコンテキストとして用いる。
 一方、ブロックa乃至c,f、およびg、または、ブロックdおよびeのうちの所定数未満のブロックのAffine flagが1であるとき、符号化部114は、Affine flagが1である可能性が低いことを確率モデルのコンテキストとして用いる。
 さらに、PUが正方形である場合、符号化部114は、ブロックa乃至eのうちの所定数以上のブロックのAffine flagが1であるとき、Affine flagが1である可能性が高いことを確率モデルのコンテキストとして用いる。
 一方、ブロックa乃至eのうちの所定数未満のブロックのAffine flagが1であるとき、符号化部114は、Affine flagが1である可能性が低いことを確率モデルのコンテキストとして用いる。
 そして、符号化部114は、Affine flagが1である可能性が高いことを確率モデルのコンテキストとして用いてAffine flagをCABACで符号化する場合、CABACの確率モデルを、1である確率が高くなるように設定して符号化を行う。これにより、Affine flagが1である場合の符号量が、Affine flagが0である場合の符号量に比べて小さくなる。
 また、符号化部114は、Affine flagが1である可能性が低いことをコンテキストとして用いてAffine flagをCABACで符号化する場合、CABACの確率モデルを、0である確率が高くなるように設定して符号化を行う。これにより、Affine flagが0である場合の符号量が、Affine flagが1である場合の符号量に比べて小さくなる。
 その結果、符号化部114は、オーバーヘッドであるAffine flagの符号量を削減し、符号化効率を向上させることができる。
 なお、Affine flagが1であるブロックの数が所定数以上であるかどうかで、コンテキストを切り替えるのではなく、Affine flagが1であるブロックの数で、コンテキストを切り替えるようにしてもよい。この場合、例えば、Affine flagが1であるブロックの数に応じて、CABACの確率モデルの1である確率が変更される。
 また、符号化部114は、ブロックa乃至gのAffine flagに基づいて、CABACの確率モデルのコンテキストを切り替えるのではなく、Affine flagに割り当てる符号(ビット列)を切り替えるようにしてもよい。
 この場合、符号化部114は、CABACの確率モデルを、1である確率が高くなるように設定する代わりに、1であるAffine flagに割り当てる符号の符号長(ビット長)を、0であるAffine flagに比べて短くする。また、符号化部114は、CABACの確率モデルを、0である確率が高くなるように設定する代わりに、0であるAffine flagに割り当てる符号の符号長を、1であるAffine flagに比べて短くする。
 (画像処理装置の処理の説明)
 図16は、図10の画像符号化装置100の画像符号化処理を説明するフローチャートである。
 図16のステップS11において、制御部101は、外部からの入力およびRDO等に基づいて、符号化パラメータ(ヘッダ情報Hinfo、予測情報Pinfo、変換情報Tinfo等)を設定する。制御部101は、設定された符号化パラメータを各ブロックへ供給する。
 ステップS12において、予測部119は、予測情報Pinfoのモード情報pred_mode_flagが、インター予測処理を示すかどうかを判定する。ステップS12でインター予測処理を示すと判定された場合、ステップS13において、予測部119は、予測情報PinfoのMerge flagが1であるかどうかを判定する。
 ステップS13でMerge flagが1であると判定された場合、ステップS14において、予測部119は、予測情報PinfoのAffine flagが1であるかどうかを判定する。ステップS14でAffine flagが1であると判定された場合、処理はステップS15に進む。
 ステップS15において、予測部119は、アフィン変換モードで動き補償を行い、マージモードのインター予測処理を行うことにより生成された予測画像Pを用いて符号化対象の画像Iを符号化するマージアフィン変換モード符号化処理を行う。このマージアフィン変換モード符号化処理の詳細は、後述する図19を参照して説明する。マージアフィン変換モード符号化処理の終了後、画像符号化処理は終了する。
 一方、ステップS14でAffine flagが1ではないと判定された場合、即ちAffine flagが0である場合、処理はステップS16に進む。
 ステップS16において、予測部119は、並進移動モードで動き補償を行い、マージモードのインター予測処理を行うことにより生成された予測画像Pを用いて符号化対象の画像Iを符号化するマージモード符号化処理を行う。マージモード符号化処理の終了後、画像符号化処理は終了する。
 また、ステップS13でMerge flagが1ではないと判定された場合、即ちMerge flagが0である場合、ステップS17において、予測部119は、予測情報PinfoのAffine flagが1であるかどうかを判定する。ステップS17でAffine flagが1であると判定された場合、処理はステップS18に進む。
 ステップS18において、予測部119は、アフィン変換モードで動き補償を行い、AMVPモードのインター予測処理を行うことにより生成された予測画像Pを用いて符号化対象の画像Iを符号化するAMVPアフィン変換モード符号化処理を行う。このAMVPアフィン変換モード符号化処理の詳細は、後述する図20を参照して説明する。AMVPアフィン変換モード符号化処理の終了後、画像符号化処理は終了する。
 一方、ステップS17でAffine flagが1ではないと判定された場合、即ちAffine flagが0である場合、処理はステップS19に進む。
 ステップS19において、予測部119は、並進移動モードで動き補償を行い、AMVPモードのインター予測処理を行うことにより生成された予測画像Pを用いて符号化対象の画像Iを符号化するAMVPモード符号化処理を行う。AMVPモード符号化処理の終了後、画像符号化処理は終了する。
 また、ステップS12でインター予測処理を示さないと判定された場合、即ちモード情報pred_mode_flagがイントラ予測処理を示す場合、処理はステップS20に進む。
 ステップS20において、予測部119は、イントラ予測処理により生成された予測画像Pを用いて符号化対象の画像Iを符号化するイントラ符号化処理を行う。そして、画像符号化処理は終了する。
 図17は、図16のステップS11の処理のうちの、Merge flag とAffine flagを設定するインター予測処理モード設定処理の第1の例を説明するフローチャートである。このインター予測処理モード設定処理は、例えば、PU(CU)単位で行われる。
 図17のステップS41において、制御部101は、各ブロックを制御して、処理対象のPU(CU)に対して、候補となるMerge flag とAffine flag以外の予測情報Pinfoごとにマージモード符号化処理を行い、RDコストJMRGを計算する。なお、RDコストの計算は、符号化の結果得られる発生ビット量(符号量)、復号画像のSSE(Error Sum of Squares)などに基づいて行われる。
 ステップS42において、制御部101は、各ブロックを制御して、処理対象のPU(CU)に対して候補となるMerge flag とAffine flag以外の予測情報PinfoごとにAMVPモード符号化処理を行い、RDコストJAMVPを計算する。
 ステップS43において、制御部101は、各ブロックを制御して、処理対象のPU(CU)に対して、候補となるMerge flag とAffine flag以外の予測情報Pinfoごとにマージアフィン変換モード符号化処理を行い、RDコストJMRGAFFINEを計算する。
 ステップS44において、制御部101は、各ブロックを制御して、処理対象のPU(CU)に対して候補となるMerge flag とAffine flag以外の予測情報PinfoごとにAMVPアフィン変換モード符号化処理を行い、RDコストJAMVPAFFINEを計算する。
 ステップS45において、制御部101は、RDコストJMRGが、RDコストJMRG,JAMVP,JMRGAFFINE、およびJAMVPAFFINEの中で最小であるかどうかを判定する。
 ステップS45でRDコストJMRGが最小であると判定された場合、ステップS46において、制御部101は、処理対象のPUのMerge flagを1に設定し、Affine flagを0に設定する。そして、インター予測処理モード設定処理は終了する。
 ステップS45でRDコストJMRGが最小ではないと判定された場合、処理はステップS47に進む。ステップS47において、制御部101は、RDコストJAMVPが、RDコストJMRG,JAMVP,JMRGAFFINE、およびJAMVPAFFINEの中で最小であるかどうかを判定する。
 ステップS47でRDコストJAMVPが最小であると判定された場合、ステップS48において、制御部101は、処理対象のPUのMerge flagとAffine flagを0に設定し、インター予測処理モード設定処理を終了する。
 一方、ステップS47でRDコストJAMVPが最小ではないと判定された場合、処理はステップS49に進む。ステップS49において、制御部101は、RDコストJMRGAFFINEが、RDコストJMRG,JAMVP,JMRGAFFINE、およびJAMVPAFFINEの中で最小であるかどうかを判定する。
 ステップS49でRDコストJMRGAFFINEが最小であると判定された場合、ステップS50において、制御部101は、処理対象のPUのMerge flagとAffine flagを1に設定し、インター予測処理モード設定処理を終了する。
 一方、ステップS49でRDコストJMRGAFFINEが最小ではないと判定された場合、即ちRDコストJAMVPAFFINEがRDコストJMRG,JAMVP,JMRGAFFINE、およびJAMVPAFFINEの中で最小である場合、処理はステップS51に進む。ステップS51において、制御部101は、処理対象のPUのMerge flagを0に設定し、Affine flagを1に設定する。そして、インター予測処理モード設定処理は終了する。
 図18は、図16のステップS11の処理のうちの、Merge flag とAffine flagを設定するインター予測処理モード設定処理の第2の例を説明するフローチャートである。このインター予測処理モード設定処理は、例えば、PU(CU)単位で行われる。
 図18のステップS71およびS72の処理は、図17のステップS41およびS42の処理と同様であるので、説明は省略する。
 ステップS73において、制御部101は、処理対象のPUのy方向のサイズHがx方向のサイズWに比べて小さいかどうかを判定する。ステップS73でサイズHがサイズWに比べて小さいと判定された場合、即ち処理対象のPUの形状が横長の長方形である場合、処理はステップS74に進む。
 ステップS74において、制御部101は、処理対象のPUに隣接するブロックa乃至e、または、ブロックfおよびgのうちの所定数以上のブロックのAffine flagが1であるかどうかを判定する。
 ステップS74でブロックa乃至e、または、ブロックfおよびgのうちの所定数以上のブロックのAffine flagが1であると判定された場合、制御部101は、処理対象のPUのAffine flagが1である可能性が高いと判断し、処理をステップS78に進める。
 一方、ステップS73でサイズHがサイズWに比べて小さくはないと判定された場合、処理はステップS75に進む。ステップS75において、制御部101は、処理対象のPUのy方向のサイズHがx方向のサイズWに比べて大きいかどうかを判定する。ステップS75でサイズHがサイズWに比べて大きいと判定された場合、即ち処理対象のPUの形状が縦長の長方形である場合、処理はステップS76に進む。
 ステップS76において、制御部101は、処理対象のPUに隣接するブロックa乃至c,f、およびg、または、ブロックdおよびeのうちの所定数以上のブロックのAffine flagが1であるかどうかを判定する。
 ステップS76でブロックa乃至c,f、およびg、または、ブロックdおよびeのうちの所定数以上のブロックのAffine flagが1であると判定された場合、制御部101は、処理対象のPUのAffine flagが1である可能性が高いと判断する。そして、制御部101は、処理をステップS78に進める。
 一方、ステップS75でサイズHがサイズWに比べて大きくはないと判定された場合、即ちサイズHとサイズWが同一である場合、処理はステップS77に進む。ステップS77において、制御部101は、処理対象のPUに隣接するブロックa乃至gのうちの所定数以上のブロックのAffine flagが1であるかどうかを判定する。
 ステップS77でブロックa乃至gのうちの所定数以上のブロックのAffine flagが1であると判定された場合、制御部101は、処理対象のPUのAffine flagが1である可能性が高いと判断し、処理をステップS78に進める。
 ステップS78およびS79の処理は、図17のステップS43およびS44の処理と同様であるので、説明は省略する。ステップS79の処理後、処理はステップS80に進む。
 ステップS74でブロックa乃至e、または、ブロックfおよびgのうちの所定数未満のブロックのAffine flagが1であると判定された場合、制御部101は、処理対象のPUのAffine flagが1である可能性が低いと判断する。そして、制御部101は、ステップS78およびS79をスキップし、処理をステップS80に進める。
 また、ステップS76でブロックa乃至c,f、およびg、または、ブロックdおよびeのうちの所定数未満のブロックのAffine flagが1であると判定された場合、制御部101は、処理対象のPUのAffine flagが1である可能性が低いと判断する。そして、制御部101は、ステップS78およびS79をスキップし、処理をステップS80に進める。
 さらに、ステップS77でブロックa乃至gのうちの所定数未満のブロックのAffine flagが1であると判定された場合、制御部101は、処理対象のPUのAffine flagが1である可能性が低いと判断する。そして、制御部101は、ステップS78およびS79をスキップし、処理をステップS80に進める。
 ステップS80において、制御部101は、RDコストJMRGが、計算されたRDコストJMRG,JAMVP,JMRGAFFINE、およびJAMVPAFFINE、または、RDコストJMRGおよびJAMVPの中で最小であるかどうかを判定する。
 ステップS80でRDコストJMRGが最小であると判定された場合、ステップS81において、制御部101は、処理対象のPUのMerge flagを1に設定し、Affine flagを0に設定する。そして、インター予測処理モード設定処理は終了する。
 ステップS80でRDコストJMRGが最小ではないと判定された場合、処理はステップS82に進む。ステップS82において、制御部101は、計算されたRDコストJMRG,JAMVP,JMRGAFFINE、およびJAMVPAFFINE、または、RDコストJMRGおよびJAMVPの中で最小であるかどうかを判定する。
 ステップS82でRDコストJAMVPが最小であると判定された場合、ステップS83において、制御部101は、処理対象のPUのMerge flagとAffine flagを0に設定し、インター予測処理モード設定処理を終了する。
 一方、ステップS82でRDコストJAMVPが最小ではないと判定された場合、処理はステップS84に進む。ステップS84において、制御部101は、RDコストJMRGAFFINEが、計算されたRDコストJMRG,JAMVP,JMRGAFFINE、およびJAMVPAFFINE、または、RDコストJMRGおよびJAMVPの中で最小であるかどうかを判定する。
 ステップS84でRDコストJMRGAFFINEが最小であると判定された場合、ステップS85において、制御部101は、処理対象のPUのMerge flagとAffine flagを1に設定し、インター予測処理モード設定処理を終了する。
 一方、ステップS84でRDコストJMRGAFFINEが最小ではないと判定された場合、即ちRDコストJAMVPAFFINEが、計算されたRDコストJMRG,JAMVP,JMRGAFFINE、およびJAMVPAFFINE、または、RDコストJMRGおよびJAMVPの中で最小である場合、処理はステップS86に進む。ステップS86において、制御部101は、処理対象のPUのMerge flagを0に設定し、Affine flagを1に設定する。そして、インター予測処理モード設定処理は終了する。
 以上のように、図18のインター予測処理モード設定処理では、図13で説明したようにAffine flagが1であるPUの領域が画像内にまとまって存在していると推測して、処理対象のPUに隣接する所定数以上のブロックのAffine flagが1である場合にのみ、ステップS78およびS79の処理が行われる。従って、図17のインター予測処理モード設定処理に比べて、計算量を削減することができる。
 図19は、マージアフィン変換モード符号化処理を説明するフローチャートである。このマージアフィン変換モード符号化処理は、例えば、CU(PU)単位で行われる。
 図19のステップS101において、予測部119は、処理対象のPUのサイズHがサイズWに比べて大きいかどうかを判定する。ステップS101で処理対象のPUのサイズHがサイズWに比べて大きいと判定された場合、即ち処理対象のPUの形状が縦長の長方形である場合、処理はステップS102に進む。
 ステップS102において、予測部119は、予測ベクトル情報に基づいて、予測ベクトルpvおよび予測ベクトルpvを決定する。具体的には、予測部119は、予測ベクトル情報が隣接ベクトルを特定する情報である場合、保持しているブロックa乃至gの動きベクトルに基づいて、予測ベクトルpv乃至pvとなる隣接ベクトルの生成に用いられる動きベクトルの全ての組み合わせのDVを計算する。そして、予測部119は、DVが最も小さくなる動きベクトルの組み合わせを用いて、予測ベクトルpvおよび予測ベクトルpvを決定する。そして、処理はステップS104に進む。
 一方、ステップS101で処理対象のPUのサイズHがサイズWに比べて大きくはないと判定された場合、即ち、処理対象のPUの形状が正方形または横長の長方形である場合、処理はステップS103に進む。
 ステップS103において、予測部119は、予測ベクトル情報に基づいて、予測ベクトルpvおよび予測ベクトルpvを決定する。具体的には、予測部119は、予測ベクトル情報が隣接ベクトルを特定する情報である場合、保持しているブロックa乃至gの動きベクトルに基づいて、予測ベクトルpv乃至pvとなる隣接ベクトルの生成に用いられる動きベクトルの全ての組み合わせのDVを計算する。そして、予測部119は、DVが最も小さくなる動きベクトルの組み合わせを用いて、予測ベクトルpvおよび予測ベクトルpvを決定する。そして、処理はステップS104に進む。
 なお、サイズHがサイズWと同一である場合、即ち、処理対象のPUの形状が正方形である場合、予測部119は、ステップS103の処理ではなく、ステップS102の処理を行うようにしてもよい。
 ステップS104において、予測部119は、ステップS102またはS103で決定された各予測ベクトルを、処理対象のPUの動きベクトルとして用いて、上述した式(1)または(2)により、各動き補償ブロックの動きベクトルvを計算する。
 具体的には、ステップS102で予測ベクトルpvと予測ベクトルpvが決定される場合、予測部119は、予測ベクトルpvを動きベクトルvとし、予測ベクトルpvを動きベクトルvとして、式(2)により動きベクトルvを計算する。
 一方、ステップS103で予測ベクトルpvと予測ベクトルpvが決定される場合、予測部119は、予測ベクトルpvを動きベクトルvとし、予測ベクトルpvを動きベクトルvとして、式(1)により動きベクトルvを計算する。
 ステップS105において、予測部119は、動き補償ブロックごとに、動きベクトルvに基づいて、フレームメモリ118に格納された参照画像特定情報により特定される参照画像のブロックを並進移動させることにより、参照画像に対してアフィン変換を行う。予測部119は、アフィン変換により動き補償が行われた参照画像を予測画像Pとして、演算部111や演算部117に供給する。
 ステップS106において、演算部111は、画像Iと予測画像Pとの差分を予測残差Dとして演算し、それを変換部112に供給する。このようにして求められた予測残差Dは、元の画像Iに比べてデータ量が低減される。したがって、画像Iをそのまま符号化する場合に比べて、データ量を圧縮することができる。
 ステップS107において、変換部112は、制御部101から供給される変換情報Tinfoに基づいて、演算部111から供給される予測残差Dに対して直交変換等を行い、変換係数Coeffを導出する。変換部112は、変換係数Coeffを量子化部113に供給する。
 ステップS108において、量子化部113は、制御部101から供給される変換情報Tinfoに基づいて、変換部112から供給される変換係数Coeffをスケーリング(量子化)し、量子化変換係数レベルlevelを導出する。量子化部113は、量子化変換係数レベルlevelを符号化部114および逆量子化部115に供給する。
 ステップS109において、逆量子化部115は、制御部101から供給される変換情報Tinfoに基づいて、量子化部113から供給される量子化変換係数レベルlevelを、ステップS108の量子化の特性に対応する特性で逆量子化する。逆量子化部115は、その結果得られる変換係数Coeff_IQを逆変換部116に供給する。
 ステップS110において、逆変換部116は、制御部101から供給される変換情報Tinfoに基づいて、逆量子化部115から供給される変換係数Coeff_IQに対して、ステップS107の直交変換等に対応する方法で逆直交変換等を行い、予測残差D’を導出する。
 ステップS111において、演算部117は、ステップS110の処理により導出された予測残差D’を、予測部119から供給される予測画像Pと加算することにより、局所的な復号画像Recを生成する。
 ステップS112において、フレームメモリ118は、ステップS111の処理により得られた、局所的な復号画像Recを用いてピクチャ単位の復号画像を再構築し、フレームメモリ118内のバッファへ記憶する。
 ステップS113において、符号化部114は、図16のステップS11の処理により設定された符号化パラメータとステップS108の処理により得られた量子化変換係数レベルlevelを所定の方法で符号化する。符号化部114は、その結果得られる符号化データを多重化し、符号化ストリームとして画像符号化装置100の外部に出力する。この符号化ストリームは、例えば、伝送路や記録媒体を介して復号側に伝送される。
 ステップS113の処理が終了すると、マージアフィン変換モード符号化処理が終了する。
 図20は、AMVPアフィン変換モード符号化処理を説明するフローチャートである。このAMVPアフィン変換モード符号化処理は、例えば、CU(PU)単位で行われる。
 図20のステップS131乃至S133は、図19のステップS101乃至S103の処理と同様であるので、説明は省略する。
 ステップS134において、予測部119は、ステップS132またはS133で決定された各予測ベクトルと、その予測ベクトルに対応する動きベクトル情報のうちの差分とをそれぞれ加算し、処理対象のPUの動きベクトルを計算する。
 具体的には、ステップS132で予測ベクトルpvと予測ベクトルpvが決定される場合、予測部119は、予測ベクトルpvと、動きベクトル情報のうちの予測ベクトルpvと処理対象のPUの動きベクトルとの差分dvとを加算する。そして、予測部119は、加算の結果得られる動きベクトルを、処理対象のPUの動きベクトルvとする。また、予測部119は、予測ベクトルpvと、動きベクトル情報のうちの予測ベクトルpvと処理対象のPUの動きベクトルとの差分dvとを加算し、その結果得られる動きベクトルを、処理対象のPUの動きベクトルvとする。
 一方、ステップS133で予測ベクトルpvと予測ベクトルpvが決定される場合、予測部119は、予測ベクトルpvと差分dvとを加算し、その結果得られる動きベクトルを、処理対象のPUの動きベクトルvとする。また、予測部119は、予測ベクトルpvと、動きベクトル情報のうちの予測ベクトルpvと処理対象のPUの動きベクトルとの差分dvとを加算し、その結果得られる動きベクトルを、処理対象のPUの動きベクトルvとする。
 ステップS135において、予測部119は、ステップS134で計算された処理対象のPUの動きベクトルを用いて、上述した式(1)または(2)により、各動き補償ブロックの動きベクトルvを計算する。
 具体的には、ステップS134で動きベクトルvと動きベクトルvが決定される場合、予測部119は、動きベクトルvと動きベクトルvを用いて、式(2)により動きベクトルvを計算する。
 一方、ステップS134で動きベクトルvと動きベクトルvが決定される場合、予測部119は、動きベクトルvと動きベクトルvを用いて、式(1)により動きベクトルvを計算する。
 ステップS136乃至S144の処理は、図19のステップS105乃至S113の処理と同様であるので、説明は省略する。
 図21は、図19のステップS113および図20のステップS144の処理のうちの、Affine flagを符号化するAffine flag符号化処理を説明するフローチャートである。
 図21のステップS161およびステップS162の処理は、予測部119ではなく符号化部114が行う点を除いて、図18のステップS73およびS74の処理と同様であるので、説明は省略する。
 ステップS162でブロックa乃至e、または、ブロックfおよびgのうちの所定数以上のブロックのAffine flagが1であると判定された場合、符号化部114は、処理対象のPUのAffine flagが1である可能性が高いと判断する。そして、符号化部114は、処理をステップS163に進める。
 ステップS163において、符号化部114は、Affine flagが1である可能性が高いことを確率モデルのコンテキストとして用いて、Affine flagをCABACで符号化し、Affine flag符号化処理を終了する。
 一方、ステップS161でサイズHがサイズWより小さくはないと判定された場合、処理はステップS164に進む。ステップS164乃至S166の処理は、制御部101ではなく符号化部114により行われる点を除いて、図18のステップS75乃至S77と同様でるので、説明は省略する。
 ステップS165でブロックa乃至c,f、およびg、または、ブロックdおよびeのうちの所定数以上のブロックのAffine flagが1であると判定された場合、符号化部114は、処理対象のPUのAffine flagが1である可能性が高いと判断する。そして、符号化部114は、処理をステップS163に進める。
 また、ステップS166でブロックa乃至gのうちの所定数以上のブロックのAffine flagが1であると判定された場合、符号化部114は、処理対象のPUのAffine flagが1である可能性が高いと判断する。そして、符号化部114は、処理をステップS163に進める。
 一方、ステップS162でブロックa乃至e、または、ブロックfおよびgのうちの所定数未満のブロックのAffine flagが1であると判定された場合、符号化部114は、処理対象のPUのAffine flagが1である可能性が低いと判断する。そして、符号化部114は、処理をステップS167に進める。
 また、ステップS165でブロックa乃至c,f、およびg、または、ブロックdおよびeのうちの所定数未満のブロックのAffine flagが1であると判定された場合、符号化部114は、処理対象のPUのAffine flagが1である可能性が低いと判断する。そして、符号化部114は、処理をステップS167に進める。
 さらに、ステップS166でブロックa乃至gのうちの所定数未満のブロックのAffine flagが1であると判定された場合、符号化部114は、処理対象のPUのAffine flagが1である可能性が低いと判断する。そして、符号化部114は、処理をステップS167に進める。
 ステップS167において、符号化部114は、Affine flagが1である可能性が低いことをコンテキストとして用いて、Affine flagをCABACで符号化し、Affine flag符号化処理を終了する。
 以上のように、画像符号化装置100は、アフィン変換によるインター予測処理を行う場合に、PUのx方向のサイズWとy方向のサイズHのうちの大きいサイズの方向に並ぶ頂点の2つの動きベクトルに基づいて、PUの予測画像Pを生成する。従って、長方形のPUの頂点の動きベクトルに発生した誤差の予測画像Pの精度への影響を抑制することができる。
 その結果、長方形のPUの予測画像Pを高精度で生成することができる。これにより、量子化変換係数レベルlevelがゼロではない場合、量子化変換係数レベルlevelの情報量を削減し、符号化効率を向上することができる。また、量子化変換係数レベルlevelがゼロである場合、復号画像の画質を向上させることができる。
 また、画像符号化装置100は、2つの動きベクトルに基づいてアフィン変換を行うので、3つの動きベクトルに基づいてアフィン変換を行う場合に比べて、オーバーヘッドを削減し、符号化効率を向上させることができる。
 (画像復号装置の構成例)
 図22は、図10の画像符号化装置100により生成された符号化ストリームを復号する、本技術を適用した画像処理装置としての画像復号装置の一実施の形態の構成例を示すブロック図である。図22の画像復号装置200は、画像符号化装置100により生成された符号化ストリームを、画像符号化装置100における符号化方法に対応する復号方法で復号する。例えば、画像復号装置200は、HEVCに提案された技術や、JVETにて提案された技術を実装している。
 なお、図22においては、処理部やデータの流れ等の主なものを示しており、図22に示されるものが全てとは限らない。つまり、画像復号装置200において、図22においてブロックとして示されていない処理部が存在したり、図22において矢印等として示されていない処理やデータの流れが存在したりしてもよい。
 図22の画像復号装置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は、符号化パラメータを各ブロックへ供給する。例えば、復号部211は、予測情報Pinfoを予測部216に供給し、変換情報Tinfoを逆量子化部212と逆変換部213に供給し、ヘッダ情報Hinfoを各ブロックに供給する。また、復号部211は、量子化変換係数レベルlevelを逆量子化部212に供給する。
 逆量子化部212は、復号部211から供給される変換情報Tinfoに基づいて、復号部211から供給される量子化変換係数レベルlevelの値をスケーリング(逆量子化)し、変換係数Coeff_IQを導出する。この逆量子化は、画像符号化装置100の量子化部113(図10)により行われる量子化の逆処理である。なお、逆量子化部115(図10)は、この逆量子化部212と同様の逆量子化を行う。逆量子化部212は、得られた変換係数Coeff_IQを逆変換部213に供給する。
 逆変換部213は、復号部211から供給される変換情報Tinfo等に基づいて、逆量子化部212より供給される変換係数Coeff_IQに対して逆直交変換等を行い、予測残差D’を導出する。この逆直交変換は、画像符号化装置100の変換部112(図10)により行われる直交変換の逆処理である。なお、逆変換部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は、参照画像を用いて、符号化対象のPUに対して、イントラ予測モード情報が示すイントラ予測モードのイントラ予測処理を行う。
 また、予測部216は、予測情報Pinfoのモード情報pred_mode_flagと参照画像特定情報に基づいて、フレームメモリ215に格納された符号化対象のCUとは異なる時刻の復号画像を参照画像として取得する。予測部216は、図10の予測部119と同様に、Merge flag、Affine flag、および動きベクトル情報に基づいて、参照画像に対して、並進移動モードまたはアフィン変換モードで動き補償を行い、マージモードまたはAMVPモードのインター予測処理を行う。予測部216は、イントラ予測処理またはインター予測処理の結果生成される予測画像Pを演算部214に供給する。
 (画像復号装置の処理)
 図23は、図22の画像復号装置200の画像復号処理を説明するフローチャートである。
 ステップS201において、復号部211は、画像復号装置200に供給される符号化ストリームを復号し、符号化パラメータと量子化変換係数レベルlevelを得る。復号部211は、符号化パラメータを各ブロックへ供給する。また、復号部211は、量子化変換係数レベルlevelを逆量子化部212に供給する。
 ステップS202において、復号部211は、符号化パラメータに含まれるsplit flagに基づいてLCUを分割し、各量子化変換係数レベルlevelに対応するCUを復号対象のCU(PU,TU)に設定する。後述するステップS203乃至S211の処理は、復号対象のCU(PU,TU)ごとに行われる。
 ステップS203乃至S205の処理は、予測部119ではなく予測部216により行われる点を除いて、図16のステップS12乃至S14の処理と同様であるので、説明は省略する。
 ステップS205でAffine flagが1であると判定された場合、処理はステップS206に進む。ステップS206において、予測部216は、アフィン変換モードで動き補償を行い、マージモードのインター予測処理を行うことにより生成された予測画像Pを用いて復号対象の画像を復号するマージアフィン変換モード復号処理を行う。このマージアフィン変換モード復号処理の詳細は、後述する図24を参照して説明する。マージアフィン変換モード復号処理の終了後、画像復号処理は終了する。
 一方、ステップS205でAffine flagが1ではないと判定された場合、即ちAffine flagが0である場合、処理はステップS207に進む。ステップS207において、予測部216は、並進移動モードで動き補償を行い、マージモードのインター予測処理を行うことにより生成された予測画像Pを用いて復号対象の画像を復号するマージモード復号処理を行う。マージモード復号処理の終了後、画像復号処理は終了する。
 また、ステップS204でMerge flagが1ではないと判定された場合、即ちMerge flagが0である場合、ステップS208において、予測部216は、予測情報PinfoのAffine flagが1であるかどうかを判定する。ステップS208でAffine flagが1であると判定された場合、処理はステップS209に進む。
 ステップS209において、予測部216は、アフィン変換モードで動き補償を行い、AMVPモードのインター予測処理を行うことにより生成された予測画像Pを用いて復号対象の画像を復号するAMVPアフィン変換モード復号処理を行う。このAMVPアフィン変換モード復号処理の詳細は、後述する図25を参照して説明する。AMVPアフィン変換モード復号処理の終了後、画像復号処理は終了する。
 一方、ステップS208でAffine flagが1ではないと判定された場合、即ちAffine flagが0である場合、処理はステップS210に進む。
 ステップS210において、予測部216は、並進移動モードで動き補償を行い、AMVPモードのインター予測処理を行うことにより生成された予測画像Pを用いて復号対象の画像を復号するAMVPモード復号処理を行う。AMVPモード復号処理の終了後、画像復号処理は終了する。
 また、ステップS203でインター予測処理を示さないと判定された場合、即ちモード情報pred_mode_flagがイントラ予測処理を示す場合、処理はステップS211に進む。
 ステップS211において、予測部216は、イントラ予測処理により生成された予測画像Pを用いて復号対象の画像を復号するイントラ復号処理を行う。そして、画像復号処理は終了する。
 図24は、図23のステップS206のマージアフィン変換モード復号処理を説明するフローチャートである。
 ステップS231において、逆量子化部212は、図23のステップS201の処理により得られた量子化変換係数レベルlevelを逆量子化して変換係数Coeff_IQを導出する。この逆量子化は、画像符号化処理のステップS108(図19)において行われる量子化の逆処理であり、画像符号化処理のステップS109(図19)において行われる逆量子化と同様の処理である。
 ステップS232において、逆変換部213は、ステップS231の処理により得られた変換係数Coeff_IQに対して逆直交変換等を行い、予測残差D'を導出する。この逆直交変換は、画像符号化処理のステップS107(図19)において行われる直交変換の逆処理であり、画像符号化処理のステップS110(図19)において行われる逆直交変換と同様の処理である。
 ステップS233乃至S237の処理は、予測部119ではなく予測部216により行われる点を除いて、図19のステップS101乃至S105の処理と同様であるので、説明は省略する。
 ステップS238において、演算部214は、逆変換部213から供給される予測残差D’を、予測部216から供給される予測画像Pと加算し、局所的な復号画像Recを導出する。演算部214は、得られた局所的な復号画像Recを用いてピクチャ単位毎の復号画像を再構築し、得られた復号画像を画像復号装置200の外部に出力する。また、演算部214は、その局所的な復号画像Recをフレームメモリ215に供給する。
 ステップS239において、フレームメモリ215は、演算部214より供給される局所的な復号画像Recを用いてピクチャ単位毎の復号画像を再構築し、フレームメモリ215内のバッファに記憶する。そして、処理は、図23のステップS206に戻り、画像復号処理を終了する。
 図25は、図23のステップS209のAMVPアフィン変換モード復号処理を説明するフローチャートである。
 図25のステップS251およびS252の処理は、図24のステップS231およびS232の処理と同様であるので、説明は省略する。
 ステップS253乃至S258の処理は、予測部119ではなく予測部216により行われる点を除いて、図20のステップS131乃至S136の処理と同様であるので、説明は省略する。
 ステップS259およびS260の処理は、図24のステップS238およびS239の処理と同様であるので、説明は省略する。
 以上のように、画像復号装置200は、アフィン変換によるインター予測処理を行う場合に、PUのx方向のサイズWとy方向のサイズHのうちの大きいサイズの方向に並ぶ頂点の2つの動きベクトルに基づいて、PUの予測画像Pを生成する。従って、長方形のPUの頂点の動きベクトルに発生した誤差の予測画像Pの精度への影響を抑制することができる。その結果、長方形のPUの予測画像Pを高精度で生成することができる。
 なお、画像符号化装置100と画像復号装置200が、イントラ予測処理やインター予測処理の代わりに、イントラBC予測処理を行う場合、イントラBC予測処理における動き補償をインター予測処理における動き補償と同様に行うようにしてもよい。
 <第2実施の形態>
 (本開示を適用したコンピュータの説明)
 上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
 図26は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 コンピュータ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が実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 <第3実施の形態>
 図27は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置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は、図10乃至図25を参照して上述した各実施の形態と同様の効果を得ることができる。
 また、このように構成されたテレビジョン装置900において、映像信号処理部905が、例えば、デコーダ904から供給される画像データを符号化し、得られた符号化データを、外部インタフェース部909を介してテレビジョン装置900の外部に出力させることができるようにしてもよい。そして、その映像信号処理部905が、上述した画像符号化装置100の機能を有するようにしてもよい。つまり、映像信号処理部905が、デコーダ904から供給される画像データを、以上の各実施の形態において説明した方法で符号化するようにしてもよい。このようにすることにより、テレビジョン装置900は、図10乃至図25を参照して上述した各実施の形態と同様の効果を得ることができる。
 <第4実施の形態>
 図28は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機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は、図10乃至図25を参照して上述した各実施の形態と同様の効果を得ることができる。
 また、このように構成された携帯電話機920において、例えば画像処理部927が、上述した画像復号装置200の機能を有するようにしてもよい。つまり、画像処理部927が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、携帯電話機920は、図10乃至図25を参照して上述した各実施の形態と同様の効果を得ることができる。
 <第5実施の形態>
 図29は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置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は、図10乃至図25を参照して上述した各実施の形態と同様の効果を得ることができる。
 また、このように構成された記録再生装置940において、例えばデコーダ947が、上述した画像復号装置200の機能を有するようにしてもよい。つまり、デコーダ947が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、記録再生装置940は、図10乃至図25を参照して上述した各実施の形態と同様の効果を得ることができる。
 <第6実施の形態>
 図30は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置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は、図10乃至図25を参照して上述した各実施の形態と同様の効果を得ることができる。
 また、このように構成された撮像装置960において、例えば画像処理部964が、上述した画像復号装置200の機能を有するようにしてもよい。つまり、画像処理部964が、符号化データを、以上の各実施の形態において説明した方法で復号するようにしてもよい。このようにすることにより、撮像装置960は、図10乃至図25を参照して上述した各実施の形態と同様の効果を得ることができる。
 <第7実施の形態>
 また、本技術は、任意の装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。図31は、本技術を適用したビデオセットの概略的な構成の一例を示している。
 近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、1機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する1セットとして実施を行う場合も多く見られるようになってきた。
 図31に示されるビデオセット1300は、このような多機能化された構成であり、画像の符号化や復号(いずれか一方でもよいし、両方でも良い)に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
 図31に示されるように、ビデオセット1300は、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314等のモジュール群と、コネクティビティ1321、カメラ1322、およびセンサ1323等の関連する機能を有するデバイスとを有する。
 モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
 図31の例の場合、ビデオモジュール1311は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ、ビデオプロセッサ、ブロードバンドモデム1333、およびRFモジュール1334を有する。
 プロセッサは、所定の機能を有する構成をSoC(System On a Chip)により半導体チップに集積したものであり、例えばシステムLSI(Large Scale Integration)等と称されるものもある。この所定の機能を有する構成は、論理回路(ハードウエア構成)であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム(ソフトウエア構成)であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路(ハードウエア構成)により実現し、その他の機能をCPUにおいて実行されるプログラム(ソフトウエア構成)により実現するようにしてもよい。
 図31のアプリケーションプロセッサ1331は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ1331において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ1332等、ビデオモジュール1311内外の構成を必要に応じて制御することもできる。
 ビデオプロセッサ1332は、画像の符号化・復号(その一方または両方)に関する機能を有するプロセッサである。
 ブロードバンドモデム1333は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線(またはその両方)の広帯域通信により送信するデータ(デジタル信号)をデジタル変調する等してアナログ信号に変換したり、その広帯域通信により受信したアナログ信号を復調してデータ(デジタル信号)に変換したりする。ブロードバンドモデム1333は、例えば、ビデオプロセッサ1332が処理する画像データ、画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報を処理する。
 RFモジュール1334は、アンテナを介して送受信されるRF(Radio Frequency)信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール1334は、ブロードバンドモデム1333により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール1334は、フロントエンドモジュール1314を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
 なお、図31において点線1341に示されるように、アプリケーションプロセッサ1331とビデオプロセッサ1332を、一体化し、1つのプロセッサとして構成されるようにしてもよい。
 外部メモリ1312は、ビデオモジュール1311の外部に設けられた、ビデオモジュール1311により利用される記憶デバイスを有するモジュールである。この外部メモリ1312の記憶デバイスは、どのような物理構成により実現するようにしてもよいが、一般的にフレーム単位の画像データのような大容量のデータの格納に利用されることが多いので、例えばDRAM(Dynamic Random Access Memory)のような比較的安価で大容量の半導体メモリにより実現するのが望ましい。
 パワーマネージメントモジュール1313は、ビデオモジュール1311(ビデオモジュール1311内の各構成)への電力供給を管理し、制御する。
 フロントエンドモジュール1314は、RFモジュール1334に対してフロントエンド機能(アンテナ側の送受信端の回路)を提供するモジュールである。図31に示されるように、フロントエンドモジュール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は、本技術を適用したセットとして実施することができる。
 (ビデオプロセッサの構成例)
 図32は、本技術を適用したビデオプロセッサ1332(図31)の概略的な構成の一例を示している。
 図32の例の場合、ビデオプロセッサ1332は、ビデオ信号およびオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータおよびオーディオデータを復号し、ビデオ信号およびオーディオ信号を再生出力する機能とを有する。
 図32に示されるように、ビデオプロセッサ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(図31)等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第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は、図10乃至図25を参照して上述した各実施の形態と同様の効果を得ることができる。
 なお、エンコード・デコードエンジン1407において、本技術(すなわち、画像符号化装置100の機能若しくは画像復号装置200の機能またはその両方)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
 (ビデオプロセッサの他の構成例)
 図33は、本技術を適用したビデオプロセッサ1332の概略的な構成の他の例を示している。図33の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能を有する。
 より具体的には、図33に示されるように、ビデオプロセッサ1332は、制御部1511、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、および内部メモリ1515を有する。また、ビデオプロセッサ1332は、コーデックエンジン1516、メモリインタフェース1517、多重化・逆多重化部(MUX DMUX)1518、ネットワークインタフェース1519、およびビデオインタフェース1520を有する。
 制御部1511は、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516等、ビデオプロセッサ1332内の各処理部の動作を制御する。
 図33に示されるように、制御部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は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化または符号化データの復号を行うようにしてもよい。
 図33に示される例において、コーデックエンジン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は、図10乃至図25を参照して上述した各実施の形態と同様の効果を得ることができる。
 なお、コーデックエンジン1516において、本技術(すなわち、画像符号化装置100の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
 以上にビデオプロセッサ1332の構成を2例示したが、ビデオプロセッサ1332の構成は任意であり、上述した2例以外のものであってもよい。また、このビデオプロセッサ1332は、1つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する3次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
 (装置への適用例)
 ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図27)、携帯電話機920(図28)、記録再生装置940(図29)、撮像装置960(図30)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図10乃至図25を参照して上述した各実施の形態と同様の効果を得ることができる。
 なお、上述したビデオセット1300の各構成の一部であっても、ビデオプロセッサ1332を含むものであれば、本技術を適用した構成として実施することができる。例えば、ビデオプロセッサ1332のみを本技術を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線1341により示されるプロセッサやビデオモジュール1311等を、本技術を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314を組み合わせ、本技術を適用したビデオユニット1361として実施することもできる。いずれの構成の場合であっても、図10乃至図25を参照して上述した各実施の形態と同様の効果を得ることができる。
 つまり、ビデオプロセッサ1332を含むものであればどのような構成であっても、ビデオセット1300の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ1332、点線1341により示されるプロセッサ、ビデオモジュール1311、または、ビデオユニット1361を、テレビジョン装置900(図27)、携帯電話機920(図28)、記録再生装置940(図29)、撮像装置960(図30)等に組み込むことができる。そして、本技術を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット1300の場合と同様に、図10乃至図25を参照して上述した各実施の形態と同様の効果を得ることができる。
 <第8実施の形態>
 また、本技術は、複数の装置により構成されるネットワークシステムにも適用することもできる。図34は、本技術を適用したネットワークシステムの概略的な構成の一例を示している。
 図34に示されるネットワークシステム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は、図10乃至図25を参照して上述した各実施の形態と同様の効果を得ることができる。
 なお、符号化データ(ビットストリーム)に関する各種情報は、符号化データに多重化されて伝送され又は記録されるようにしてもよいし、符号化データに多重化されることなく、符号化データと関連付けられた別個のデータとして伝送され又は記録されるようにしてもよい。ここで、「関連付ける」という用語は、例えば、一方のデータを処理する際に他方のデータを利用し得る(リンクさせ得る)ようにすることを意味する。つまり、互いに関連付けられたデータは、1つのデータとしてまとめられてもよいし、それぞれ個別のデータとしてもよい。例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の伝送路上で伝送されるようにしてもよい。また、例えば、符号化データ(画像)に関連付けられた情報は、その符号化データ(画像)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されるようにしてもよい。なお、この「関連付け」は、データ全体でなく、データの一部であってもよい。例えば、画像とその画像に対応する情報とが、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられるようにしてもよい。
 また、上述したように、本明細書において、「合成する」、「多重化する」、「付加する」、「一体化する」、「含める」、「格納する」、「入れ込む」、「差し込む」、「挿入する」等の用語は、例えば符号化データとメタデータとを1つのデータにまとめるといった、複数の物を1つにまとめることを意味し、上述の「関連付ける」の1つの方法を意味する。
 なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
 また、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
 なお、本開示は、以下のような構成もとることができる。
 (1)
 ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて、前記ブロックの予測画像を生成する予測部
 を備える画像処理装置。
 (2)
 前記予測部は、前記ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向の辺の頂点に隣接する隣接ブロックの予測画像が、前記隣接ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて生成される場合、前記ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて、前記ブロックの予測画像を生成する
 ように構成された
 前記(1)に記載の画像処理装置。
 (3)
 前記ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて前記ブロックの予測画像を生成することを示す複数ベクトル予測情報を符号化する符号化部
 をさらに備える
 前記(1)または(2)に記載の画像処理装置。
 (4)
 前記符号化部は、前記ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向の辺の頂点に隣接する隣接ブロックの予測画像が、前記隣接ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて生成されるかどうかに基づいて、前記複数ベクトル予測情報を符号化する
 ように構成された
 前記(3)に記載の画像処理装置。
 (5)
 前記符号化部は、前記隣接ブロックの予測画像が、前記隣接ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて生成されるかどうかに基づいて、前記複数ベクトル予測情報の符号化における確率モデルのコンテキストを切り替える
 ように構成された
 前記(4)に記載の画像処理装置。
 (6)
 前記符号化部は、前記隣接ブロックの予測画像が、前記隣接ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて生成されるかどうかに基づいて、前記複数ベクトル予測情報の符号を切り替える
 ように構成された
 前記(4)に記載の画像処理装置。
 (7)
 前記符号化部は、前記隣接ブロックの予測画像が、前記隣接ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて生成される場合、前記隣接ブロックの予測画像が、前記隣接ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて生成されない場合に比べて符号量が小さくなるように、前記複数ベクトル予測情報を符号化する
 ように構成された
 前記(4)乃至(6)のいずれかに記載の画像処理装置。
 (8)
 前記予測部は、前記ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて、前記ブロックの参照画像をアフィン変換することにより、前記ブロックの予測画像を生成する
 ように構成された
 前記(1)乃至(7)のいずれかに記載の画像処理装置。
 (9)
 前記ブロックは、1つのブロックの水平方向および垂直方向の少なくとも一方への分割を再帰的に繰り返すことにより生成される
 ように構成された
 前記(1)乃至(8)のいずれかに記載の画像処理装置。
 (10)
 画像処理装置が、
 ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて、前記ブロックの予測画像を生成するステップ
 を含む画像処理方法。
 100 画像符号化装置, 114 符号化部, 119 予測部, 121,131,191,193 PU, 200 画像復号装置, 216 予測部

Claims (10)

  1.  ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて、前記ブロックの予測画像を生成する予測部
     を備える画像処理装置。
  2.  前記予測部は、前記ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向の辺の頂点に隣接する隣接ブロックの予測画像が、前記隣接ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて生成される場合、前記ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて、前記ブロックの予測画像を生成する
     ように構成された
     請求項1に記載の画像処理装置。
  3.  前記ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて前記ブロックの予測画像を生成することを示す複数ベクトル予測情報を符号化する符号化部
     をさらに備える
     請求項1に記載の画像処理装置。
  4.  前記符号化部は、前記ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向の辺の頂点に隣接する隣接ブロックの予測画像が、前記隣接ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて生成されるかどうかに基づいて、前記複数ベクトル予測情報を符号化する
     ように構成された
     請求項3に記載の画像処理装置。
  5.  前記符号化部は、前記隣接ブロックの予測画像が、前記隣接ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて生成されるかどうかに基づいて、前記複数ベクトル予測情報の符号化における確率モデルのコンテキストを切り替える
     ように構成された
     請求項4に記載の画像処理装置。
  6.  前記符号化部は、前記隣接ブロックの予測画像が、前記隣接ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて生成されるかどうかに基づいて、前記複数ベクトル予測情報の符号を切り替える
     ように構成された
     請求項4に記載の画像処理装置。
  7.  前記符号化部は、前記隣接ブロックの予測画像が、前記隣接ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて生成される場合、前記隣接ブロックの予測画像が、前記隣接ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて生成されない場合に比べて符号量が小さくなるように、前記複数ベクトル予測情報を符号化する
     ように構成された
     請求項4に記載の画像処理装置。
  8.  前記予測部は、前記ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて、前記ブロックの参照画像をアフィン変換することにより、前記ブロックの予測画像を生成する
     ように構成された
     請求項1に記載の画像処理装置。
  9.  前記ブロックは、1つのブロックの水平方向および垂直方向の少なくとも一方への分割を再帰的に繰り返すことにより生成される
     ように構成された
     請求項1に記載の画像処理装置。
  10.  画像処理装置が、
     ブロックの縦方向と横方向のサイズのうちの大きいサイズの方向に並ぶ2つの頂点の動きベクトルに基づいて、前記ブロックの予測画像を生成するステップ
     を含む画像処理方法。
PCT/JP2017/047373 2017-01-12 2017-12-28 画像処理装置および画像処理方法 WO2018131523A1 (ja)

Priority Applications (9)

Application Number Priority Date Filing Date Title
US16/471,981 US20190335191A1 (en) 2017-01-12 2017-12-28 Image processing device and image processing method
RU2019120751A RU2019120751A (ru) 2017-01-12 2017-12-28 Устройство для обработки изображений и способ обработки изображений
AU2017393148A AU2017393148A1 (en) 2017-01-12 2017-12-28 Image processing device and image processing method
EP17891818.1A EP3570547A4 (en) 2017-01-12 2017-12-28 IMAGE PROCESSING DEVICE AND IMAGE PROCESSING METHOD
CN201780082515.2A CN110169071A (zh) 2017-01-12 2017-12-28 图像处理装置和图像处理方法
CA3048569A CA3048569A1 (en) 2017-01-12 2017-12-28 Image processing device and image processing method
KR1020197018121A KR20190105572A (ko) 2017-01-12 2017-12-28 화상 처리 장치 및 화상 처리 방법
BR112019013978-8A BR112019013978A2 (pt) 2017-01-12 2017-12-28 Dispositivo e método de processamento de imagem.
JP2018561334A JPWO2018131523A1 (ja) 2017-01-12 2017-12-28 画像処理装置および画像処理方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017003465 2017-01-12
JP2017-003465 2017-01-12

Publications (1)

Publication Number Publication Date
WO2018131523A1 true WO2018131523A1 (ja) 2018-07-19

Family

ID=62840581

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/047373 WO2018131523A1 (ja) 2017-01-12 2017-12-28 画像処理装置および画像処理方法

Country Status (10)

Country Link
US (1) US20190335191A1 (ja)
EP (1) EP3570547A4 (ja)
JP (1) JPWO2018131523A1 (ja)
KR (1) KR20190105572A (ja)
CN (1) CN110169071A (ja)
AU (1) AU2017393148A1 (ja)
BR (1) BR112019013978A2 (ja)
CA (1) CA3048569A1 (ja)
RU (1) RU2019120751A (ja)
WO (1) WO2018131523A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021018081A1 (en) * 2019-07-26 2021-02-04 Beijing Bytedance Network Technology Co., Ltd. Configurable coding tree unit size in video coding
JP2022501870A (ja) * 2018-09-21 2022-01-06 キヤノン株式会社 ビデオ符号化及び復号化
US11539949B2 (en) 2019-07-26 2022-12-27 Beijing Bytedance Network Technology Co., Ltd. Determination of picture partition mode based on block size

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10609384B2 (en) * 2017-09-21 2020-03-31 Futurewei Technologies, Inc. Restriction on sub-block size derivation for affine inter prediction
CN111602393B (zh) * 2018-01-15 2022-10-21 三星电子株式会社 编码方法及其设备以及解码方法及其设备
CN113170192B (zh) * 2018-11-15 2023-12-01 北京字节跳动网络技术有限公司 仿射的merge与mvd
CN113508593A (zh) * 2019-02-27 2021-10-15 北京字节跳动网络技术有限公司 基于回退的运动矢量场的基于子块运动矢量推导
EP3930327A4 (en) * 2019-03-08 2022-06-01 Guangdong Oppo Mobile Telecommunications Corp., Ltd. PREDICTION PROCESS, ENCODER, DECODER, AND COMPUTER STORAGE MEDIA

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012165278A (ja) * 2011-02-08 2012-08-30 Jvc Kenwood Corp 画像符号化装置、画像符号化方法および画像符号化プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10560712B2 (en) * 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012165278A (ja) * 2011-02-08 2012-08-30 Jvc Kenwood Corp 画像符号化装置、画像符号化方法および画像符号化プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FENG ZOU ET AL.: "Improved affine motion prediction", JOINT VIDEO EXPLORATION TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 3RD MEETING, 26 May 2016 (2016-05-26), Geneva, CH, XP030150192 *
See also references of EP3570547A4 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022501870A (ja) * 2018-09-21 2022-01-06 キヤノン株式会社 ビデオ符号化及び復号化
WO2021018081A1 (en) * 2019-07-26 2021-02-04 Beijing Bytedance Network Technology Co., Ltd. Configurable coding tree unit size in video coding
US11539949B2 (en) 2019-07-26 2022-12-27 Beijing Bytedance Network Technology Co., Ltd. Determination of picture partition mode based on block size
US11659179B2 (en) 2019-07-26 2023-05-23 Beijing Bytedance Network Technology Co., Ltd. Determination of picture partition mode based on block size
US11930175B2 (en) 2019-07-26 2024-03-12 Beijing Bytedance Network Technology Co., Ltd Block size dependent use of video coding mode

Also Published As

Publication number Publication date
CN110169071A (zh) 2019-08-23
EP3570547A1 (en) 2019-11-20
AU2017393148A1 (en) 2019-07-25
CA3048569A1 (en) 2018-07-19
BR112019013978A2 (pt) 2020-03-03
EP3570547A4 (en) 2020-02-12
KR20190105572A (ko) 2019-09-17
RU2019120751A (ru) 2021-01-13
US20190335191A1 (en) 2019-10-31
JPWO2018131523A1 (ja) 2019-11-07

Similar Documents

Publication Publication Date Title
US11997316B2 (en) Image processing apparatus and method for curbing deterioration in coding efficiency
WO2018047668A1 (ja) 画像処理装置および画像処理方法
WO2018131523A1 (ja) 画像処理装置および画像処理方法
WO2018070267A1 (ja) 画像処理装置および画像処理方法
RU2669685C2 (ru) Устройство и способ декодирования изображения
WO2018131515A1 (ja) 画像処理装置及び画像処理方法
WO2015008652A1 (ja) 画像処理装置および方法
US20200213610A1 (en) Image processor and image processing method
WO2017126333A1 (ja) 画像処理装置および方法
JP6497562B2 (ja) 画像符号化装置および方法
JP6891895B2 (ja) 画像処理装置および画像処理方法
WO2020008724A1 (ja) 画像処理装置、画像処理方法及びプログラム
KR20170098827A (ko) 화상 처리 장치 및 화상 처리 방법
JPWO2016147836A1 (ja) 画像処理装置および方法
WO2017073362A1 (ja) 画像処理装置および方法
US20190132590A1 (en) Image processing device and method
WO2017073360A1 (ja) 画像処理装置および方法
WO2020008769A1 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
WO2017126331A1 (ja) 画像処理装置および方法
JP2015050738A (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: 17891818

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018561334

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 20197018121

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 3048569

Country of ref document: CA

NENP Non-entry into the national phase

Ref country code: DE

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112019013978

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 2017393148

Country of ref document: AU

Date of ref document: 20171228

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2017891818

Country of ref document: EP

Effective date: 20190812

ENP Entry into the national phase

Ref document number: 112019013978

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20190705