`
`ENCODER, DECODER, ENCODING METHOD, AND DECODING
`
`METHOD
`
`Cross reference to Related Application
`
`The present application claims the benefit of U.S. Provisional
`
`Patent Application No. 62/947,185 filed December 12, 2019. The
`
`entire disclosure of the above-identified application,
`
`including the
`
`specification, drawings
`
`and claims
`
`is
`
`incorporated herein by
`
`10
`
`reference in its entirety.
`
`Field
`
`The
`
`present disclosure
`
`relates
`
`to
`
`video
`
`coding,
`
`and
`
`particularly to systems, constituent elements, and methods in video
`
`15
`
`encoding and decoding.
`
`Background
`
`With advancement in video coding technology, from H.261 and
`
`MPEG-1
`
`to H.264/AVC (Advanced Video Coding), MPEG-LA,
`
`20
`
`H.265/HEVC (High Efficiency Video Coding)
`
`and H.266/VVC
`
`(Versatile Video Codec), there remains a constant need to provide
`
`improvements and optimizations to the video coding technology to
`
`process an ever-increasing amount of digital video data in various
`
`
`
`applications. to_furtherThe present’ disclosure’ relates
`
`
`
`
`
`
`
`
`
`25
`
`advancements, improvements and optimizations in video coding.
`
`Note that Non-Patent Literature (NPL)
`
`1
`
`relates to one
`
`example of a conventional standard regarding the above-described
`
`video coding technology.
`
`30
`
`Citation List
`
`Non Patent Literature
`
`NPL 1: H.265 (ISO/IEC 23008-2 HEVC)/HEVC (High Efficiency
`
`Video Coding)
`
`35
`
`Summary
`
`
`
`For example, an encoder according to an aspect of the present
`
`disclosure includes circuitry and memory connected to the circuitry,
`
`and the circuitry, in operation: determines a mode to be applied to a
`
`block from a plurality of merge modes based on a width of the block
`
`and a height of the block; when the mode determined is a first mode,
`
`stores in a bitstream an index indicating a distance and an angle that
`
`define two partitions in the block, and encodes the block using the
`
`first mode; and disables storing of the index in the bitstream when (i)
`
`the width is at least 8 times as much as the height or (ii) the height
`
`10
`
`is at least 8 times as much as the width.
`
`In video coding technology, new methods are desired to be
`
`proposed in order to improve coding efficiency, enhance image
`
`quality, and reduce circuit scale.
`
`Each of embodiments, or each of part of constituent elements
`
`15
`
`and methods in the present disclosure enables, for example, at least
`
`one of the following: improvement in coding efficiency, enhancement
`
`in
`
`image
`
`quality,
`
`reduction
`
`in
`
`processing
`
`amount
`
`encoding/decoding,
`
`reduction in
`
`circuit
`
`scale,
`
`improvement
`
`oof
`
`in
`
`processing speed of encoding/decoding, etc. Alternatively, each of
`
`20
`
`embodiments, or each of part of constituent elements and methods
`
`in
`
`the present disclosure enables,
`
`in encoding and decoding,
`
`appropriate selection of either an element such as a filter, a block, a
`
`size, a motion vector, a reference picture, and a reference block or an
`
`operation.
`
`It
`
`is to be noted that the present disclosure includes
`
`25
`
`disclosure regarding configurations and methods which may provide
`
`advantages other than the above-described ones. Examples of such
`
`configurations and methods include a configuration or method for
`
`improving coding efficiency while reducing increase in processing
`
`amount.
`
`30
`
`Additional benefits and advantages according to an aspect of
`
`the present disclosure will become apparent from the specification
`
`and drawings. The benefits and/or advantages may be individually
`
`obtained
`
`by
`
`the various
`
`embodiments
`
`and
`
`features
`
`of
`
`the
`
`specification and drawings, and not all of which need to be provided
`
`35
`
`in order to obtain one or more of such benefits and/or advantages.
`-2-
`
`
`
`It is to be noted that these general or specific aspects may be
`
`implemented using a system, an integrated circuit, a computer
`
`program, or a computer-readable recording medium such as a
`
`CD-ROM, or any combination of systems, methods,
`
`integrated
`
`circuits, computer programs, and recording media.
`
`Brief Description of Drawings
`
`These and other advantages
`
`and features will become
`
`apparent from the following description thereof taken in conjunction
`
`10
`
`with the accompanying Drawings, by way of non-limiting examples of
`
`embodiments disclosed herein.
`
`[FIG. 1]
`
`FIG. 1 is a schematic diagram illustrating one example of a
`
`configuration of a transmission system according to an embodiment.
`
`15
`
`[FIG. 2]
`
`FIG. 2 is a diagram illustrating one example of a hierarchical
`
`structure of data in a stream.
`
`[FIG. 3]
`
`FIG.
`
`3
`
`is
`
`a diagram illustrating one example of a
`
`slice
`
`20
`
`configuration.
`
`[FIG. 4]
`
`FIG.
`
`4
`
`is
`
`a diagram illustrating one example of
`
`a
`
`tile
`
`configuration.
`
`[FIG. 5]
`
`25
`
`FIG. 5 is a diagram illustrating one example of an encoding
`
`structure in scalable encoding.
`
`[FIG. 6]
`
`FIG. 6 is a diagram illustrating one example of an encoding
`
`structure in scalable encoding.
`
`30
`
`[FIG. 7]
`
`FIG. 7 is
`
`a block diagram illustrating one example of a
`
`functional configuration of an encoder according to an embodiment.
`
`[FIG. 8]
`
`FIG. 8 is a block diagram illustrating a mounting example of
`
`35
`
`the encoder.
`
`- 3 -
`
`
`
`[FIG. 9]
`
`FIG. 9 is a flow chart illustrating one example of an overall
`
`encoding process performed by the encoder.
`
`[FIG. 10]
`
`FIG. 10 is a diagram illustrating one example of block splitting.
`
`[FIG. 11]
`
`FIG. 11 is a diagram illustrating one example of a functional
`
`configuration of a splitter.
`
`[FIG. 12]
`
`10
`
`FIG. 12 is a diagram illustrating examples of splitting patterns.
`
`[FIG. 13A]
`
`FIG. 13A is a diagram illustrating one example of a syntax tree
`
`of a splitting pattern.
`
`[FIG. 13B]
`
`15
`
`FIG. 13B is a diagram illustrating another example of a syntax
`
`tree of a splitting pattern.
`
`[FIG. 14]
`
`FIG. 14 is a chart illustrating transform basis functions for
`
`each transform type.
`
`20
`
`[FIG. 15]
`
`FIG. 15 is a diagram illustrating examples of SVT.
`
`[FIG. 16]
`
`FIG. 16 is a flow chart illustrating one example of a process
`
`performed by a transformer.
`
`25
`
`[FIG. 17]
`
`FIG. 17 is a flow chart
`
`illustrating another example of a
`
`process performed by the transformer.
`
`[FIG. 18]
`
`FIG. 18 is a block diagram illustrating one example of a
`
`30
`
`functional configuration of a quantizer.
`
`[FIG. 19]
`
`FIG. 19 is a flow chart illustrating one example of quantization
`
`performed by the quantizer.
`
`[FIG. 20]
`
`35
`
`FIG. 20 is a block diagram illustrating one example of a
`
`-4-
`
`
`
`functional configuration of an entropy encoder.
`
`[FIG. 21]
`
`FIG. 21 is a diagram illustrating a flow of CABAC in the entropy
`
`encoder.
`
`[FIG. 22]
`
`FIG. 22 is a block diagram illustrating one example of a
`
`functional configuration of a loop filter.
`
`[FIG. 23A]
`
`FIG. 23A is a diagram illustrating one example of a filter shape
`
`10
`
`used in an adaptive loop filter (ALF).
`
`[FIG. 23B]
`
`FIG. 23B is a diagram illustrating another example of a filter
`
`shape used in an ALF.
`
`[FIG. 23C]
`
`15
`
`FIG. 23C is a diagram illustrating another example of a filter
`
`shape used in an ALF.
`
`[FIG. 23D]
`
`FIG. 23D is a diagram illustrating an example where Y samples
`
`(first component) are used for a cross component ALF (CCALF) for Cb
`
`20
`
`and a CCALF for Cr (components different from the first component).
`
`[FIG. 23E]
`
`FIG. 23E is a diagram illustrating a diamond shaped filter.
`
`[FIG. 23F]
`
`FIG. 23F is a diagram illustrating an example for a joint
`
`25
`
`chroma CCALF (JC-CCALF).
`
`[FIG. 23G]
`
`FIG. 23G is a diagram illustrating an example for JC-CCALF
`
`weight index candidates.
`
`[FIG. 24]
`
`30
`
`FIG. 24 is a block diagram illustrating one example of a
`
`specific configuration of a loop filter which functions as a DBF.
`
`[FIG. 25]
`
`FIG. 25 is a diagram illustrating an example of a deblocking
`
`filter having a symmetrical filtering characteristic with respect to a
`
`35
`
`block boundary.
`
`- 5 -
`
`
`
`[FIG. 26]
`
`FIG. 26 is a diagram for illustrating a block boundary on which
`
`a deblocking filter process is performed.
`
`[FIG. 27]
`
`FIG. 27 is a diagram illustrating examples of Bs values.
`
`[FIG. 28]
`
`FIG. 28 is a flow chart illustrating one example of a process
`
`performed by a predictor of the encoder.
`
`[FIG. 29]
`
`10
`
`FIG. 29 is a flow chart
`
`illustrating another example of a
`
`process performed by the predictor of the encoder.
`
`[FIG. 30]
`
`FIG. 30 is a flow chart
`
`illustrating another example of a
`
`process performed by the predictor of the encoder.
`
`15
`
`[FIG. 31]
`
`FIG. 31 is a diagram is a diagram illustrating one example of
`
`sixty-seven intra prediction modes used in intra prediction.
`
`[FIG. 32]
`
`FIG. 32 is a flow chart illustrating one example of a process
`
`20
`
`performed by an intra predictor.
`
`[FIG. 33]
`
`FIG. 33 is
`
`a diagram illustrating examples of
`
`reference
`
`pictures.
`
`[FIG. 34]
`
`25
`
`FIG. 34 is a diagram illustrating examples of reference picture
`
`lists.
`
`[FIG. 35]
`
`FIG. 35 is a flowchart illustrating a basic processing flow of
`
`inter prediction.
`
`30
`
`[FIG. 36]
`
`FIG. 36 is
`
`a
`
`flow chart
`
`illustrating one example of MV
`
`derivation.
`
`[FIG. 37]
`
`FIG. 37 is a flow chart
`
`illustrating another example of MV
`
`35
`
`derivation.
`
`- 6 -
`
`
`
`[FIG. 38A]
`
`
`
`
`
`
`
`
`
`
`
`
`
`FIG. diagram_illustrating38A is a one example. of
`
`categorization of modes for MV derivation.
`
`[FIG. 38B]
`
`
`
`
`
`
`
`
`
`FIG. diagram_illustrating38B is a one example of
`
`
`
`
`
`categorization of modes for MV derivation.
`
`[FIG. 39]
`
`FIG. 39 is
`
`a
`
`flow chart
`
`illustrating an example of
`
`inter
`
`prediction by normal inter mode.
`
`10
`
`[FIG. 40]
`
`FIG. 40 is
`
`a
`
`flow chart
`
`illustrating an example of
`
`inter
`
`prediction by normal merge mode.
`
`[FIG. 41]
`
`FIG. 41 is a diagram for illustrating one example of an MV
`
`15
`
`derivation process by normal merge mode.
`
`[FIG. 42]
`
`FIG. 42 is a diagram for illustrating one example of an MV
`
`derivation process by HMVP mode.
`
`[FIG. 43]
`
`20
`
`FIG. 43 is a flow chart illustrating one example of frame rate
`
`up conversion (FRUC).
`
`[FIG. 44]
`
`FIG. 44 is a diagram for illustrating one example of pattern
`
`matching (bilateral matching) between two blocks located along a
`
`25
`
`motion trajectory.
`
`[FIG. 45]
`
`FIG. 45 is a diagram for illustrating one example of pattern
`
`matching (template matching) between a template in a current
`
`picture and a block in a reference picture.
`
`30
`
`[FIG. 46A]
`
`FIG. 46A is a diagram for illustrating one example of MV
`
`derivation in units of a sub-block in affine mode in which two control
`
`points are used.
`
`[FIG. 46B]
`
`35
`
`FIG. 46B is a diagram for illustrating one example of MV
`
`- 7 -
`
`
`
`derivation in units of a sub-block in affine mode in which three
`
`control points are used.
`
`[FIG. 47A]
`
`FIG. 47A is a conceptual diagram for illustrating one example
`
`of MV derivation at control points in an affine mode.
`
`[FIG. 47B]
`
`FIG. 47B is a conceptual diagram for illustrating one example
`
`of MV derivation at control points in an affine mode.
`
`[FIG. 47C]
`
`10
`
`FIG. 47C is a conceptual diagram for illustrating one example
`
`of MV derivation at control points in an affine mode.
`
`[FIG. 48A]
`
`FIG. 48A is a diagram for illustrating an affine mode in which
`
`two control points are used.
`
`15
`
`[FIG. 48B]
`
`FIG. 48B is a diagram for illustrating an affine mode in which
`
`three control points are used.
`
`[FIG. 49A]
`
`FIG. 49A is a conceptual diagram for illustrating one example
`
`20
`
`of a method for MV derivation at control points when the number of
`
`control points for an encoded block and the number of control points
`
`for a current block are different from each other.
`
`[FIG. 49B]
`
`FIG. 49B is a conceptual diagram for
`
`illustrating another
`
`25
`
`example of a method for MV derivation at control points when the
`
`number of control points for an encoded block and the number of
`
`control points for a current block are different from each other.
`
`[FIG. 50]
`
`FIG. 50 is a flow chartillustrating one example of the affine
`
`30
`
`merge mode.
`
`[FIG. 51]
`
`FIG. 51 is a flow chart illustrating one example of a process in
`
`affine inter mode.
`
`[FIG. 52A]
`
`35
`
`FIG. 52A is
`
`a diagram for
`- 8 -
`
`illustrating generation of
`
`two
`
`
`
`triangular prediction images.
`
`[FIG. 52B]
`
`FIG. 52B is a conceptual diagram illustrating examples of a
`
`first portion of a first partition and first and second sets of samples.
`
`[FIG. 52C]
`
`FIG. 52C is a conceptual diagram illustrating a first portion of
`
`a first partition.
`
`[FIG. 53]
`
`FIG. 53 is a flow chart illustrating one example of a triangle
`
`10
`
`mode.
`
`[FIG. 54]
`
`FIG. 54 is a diagram illustrating one example of an ATMVP
`
`mode in which an MV is derived in units of a sub-block.
`
`[FIG. 55]
`
`15
`
`FIG. 55 is a diagram illustrating a relationship between a
`
`merge mode and dynamic motion vector refreshing (DMVR).
`
`[FIG. 56]
`
`FIG. 56 is a conceptual diagram for illustrating one example of
`
`DMVR.
`
`20
`
`[FIG. 57]
`
`FIG. 57 is
`
`a conceptual diagram for
`
`illustrating another
`
`example of DMVR for determining an MV.
`
`[FIG. 58A]
`
`FIG. 58A is a diagram illustrating one example of motion
`
`25
`
`estimation in DMVR.
`
`[FIG. 58B]
`
`FIG. 58B is a flow chart illustrating one example of motion
`
`estimation in DMVR.
`
`[FIG. 59]
`
`30
`
`FIG. 59 is a flow chart illustrating one example of generation
`
`of a prediction image.
`
`[FIG. 60]
`
`FIG. 60 is
`
`a
`
`flow chart
`
`illustrating another example of
`
`generation of a prediction image.
`
`35
`
`[FIG. 61]
`
`- 9 -
`
`
`
`FIG. 61 is a flow chart illustrating one example of a correction
`
`process
`
`of
`
`a
`
`prediction
`
`image
`
`by overlapped
`
`block motion
`
`compensation (OBMC).
`
`[FIG. 62]
`
`FIG. 62 is a conceptual diagram for illustrating one example of
`
`a prediction image correction process by OBMC.
`
`[FIG. 63]
`
`FIG. 63 is a diagram for illustrating a model assuming uniform
`
`linear motion.
`
`10
`
`[FIG. 64]
`
`FIG. 64 is
`
`a
`
`flow chart
`
`illustrating one example of
`
`inter
`
`prediction according to BIO.
`
`[FIG. 65]
`
`FIG. 65 is a diagram illustrating one example of a functional
`
`15
`
`configuration of an inter predictor which performs inter prediction
`
`according to BIO.
`
`[FIG. 66A]
`
`FIG. 66A is
`
`a diagram for
`
`illustrating one example of a
`
`prediction image generation method using a luminance correction
`
`20
`
`process by local illumination compensation (LIC).
`
`[FIG. 66B]
`
`FIG. 66B is a flow chart illustrating one example of a prediction
`
`image generation method using a luminance correction process by
`
`LIC.
`
`25
`
`[FIG. 67]
`
`FIG.
`
`67
`
`is
`
`a
`
`block diagram illustrating
`
`a_
`
`functional
`
`configuration of a decoder according to an embodiment.
`
`[FIG. 68]
`
`FIG. 68 is a block diagram illustrating a mounting example of
`
`30
`
`a decoder.
`
`[FIG. 69]
`
`FIG. 69 is a flow chart illustrating one example of an overall
`
`decoding process performed by the decoder.
`
`[FIG. 70]
`
`35
`
`FIG. 7O is a diagram illustrating a relationship between a
`-10-
`
`
`
`splitting determiner and other constituent elements.
`
`[FIG. 71]
`
`FIG. 71 is a block diagram illustrating one example of a
`
`functional configuration of an entropy decoder.
`
`[FIG. 72]
`
`FIG. 72 is a diagram illustrating a flow of CABAC in the entropy
`
`decoder.
`
`[FIG. 73]
`
`FIG. 73 is a block diagram illustrating one example of a
`
`10
`
`functional configuration of an inverse quantizer.
`
`[FIG. 74]
`
`FIG. 74 is a flow chart
`
`illustrating one example of inverse
`
`quantization performed by the inverse quantizer.
`
`[FIG. 75]
`
`15
`
`FIG. 75 is a flow chart illustrating one example of a process
`
`performed by an inverse transformer.
`
`[FIG. 76]
`
`FIG. 76 is a flow chart
`
`illustrating another example of a
`
`process performed by the inverse transformer.
`
`20
`
`[FIG. 77]
`
`FIG. 77 is a block diagram illustrating one example of a
`
`functional configuration of a loop filter.
`
`[FIG. 78]
`
`FIG. 78 is a flow chart illustrating one example of a process
`
`25
`
`performed by a predictor of the decoder.
`
`[FIG. 79]
`
`FIG. 79 is a flow chart
`
`illustrating another example of a
`
`process performed by the predictor of the decoder.
`
`[FIG. 8OA]
`
`30
`
`FIG. 80A is a flow chart illustrating a portion of other example
`
`of a process performed by the predictor of the decoder.
`
`[FIG. 80B]
`
`FIG. 80B is a flow chart illustrating the remaining portion of
`
`the other example of the process performed by the predictor of the
`
`35
`
`decoder.
`
`- 11 -
`
`
`
`[FIG. 81]
`
`FIG. 81 is a diagram illustrating one example of a process
`
`performed by an intra predictor of the decoder.
`
`[FIG. 82]
`
`FIG. 82 is
`
`a
`
`flow chart
`
`illustrating one example of MV
`
`derivation in the decoder.
`
`[FIG. 83]
`
`FIG. 83 is a flow chart
`
`illustrating another example of MV
`
`derivation in the decoder.
`
`10
`
`[FIG. 84]
`
`FIG. 84 is
`
`a
`
`flow chart
`
`illustrating an example of
`
`inter
`
`prediction by normal inter mode in the decoder.
`
`[FIG. 85]
`
`FIG. 85 is
`
`a
`
`flow chart
`
`illustrating an example of
`
`inter
`
`15
`
`prediction by normal merge mode in the decoder.
`
`[FIG. 86]
`
`FIG. 86 is
`
`a
`
`flow chart
`
`illustrating an example of
`
`inter
`
`prediction by FRUC mode in the decoder.
`
`[FIG. 87]
`
`20
`
`FIG. 87 is
`
`a
`
`flow chart
`
`illustrating an example of
`
`inter
`
`prediction by affine merge mode in the decoder.
`
`[FIG. 88]
`
`FIG. 88 is
`
`a
`
`flow chart
`
`illustrating an example of
`
`inter
`
`prediction by affine inter mode in the decoder.
`
`25
`
`[FIG. 89]
`
`FIG. 89 is
`
`a
`
`flow chart
`
`illustrating an example of
`
`inter
`
`prediction by triangle mode in the decoder.
`
`[FIG. 90]
`
`FIG. 90 is a flow chart
`
`illustrating an example of motion
`
`30
`
`estimation by DMVR in the decoder.
`
`[FIG. 91]
`
`FIG. 91 is a flow chart illustrating one specific example of
`
`motion estimation by DMVR in the decoder.
`
`[FIG. 92]
`
`35
`
`FIG. 92 is a flow chart illustrating one example of generation
`-12-
`
`
`
`of a prediction image in the decoder.
`
`[FIG. 93]
`
`FIG. 93 is
`
`a
`
`flow chart
`
`illustrating another example of
`
`generation of a prediction image in the decoder.
`
`[FIG. 94]
`
`FIG. 94 is
`
`a
`
`flow chart
`
`illustrating another example of
`
`correction of a prediction image by OBMC in the decoder.
`
`[FIG. 95]
`
`FIG. 95 is
`
`a
`
`flow chart
`
`illustrating another example of
`
`10
`
`correction of a prediction image by BIO in the decoder.
`
`[FIG. 96]
`
`FIG. 96 is
`
`a
`
`flow chart
`
`illustrating another example of
`
`correction of a prediction image by LIC in the decoder.
`
`[FIG. 97]
`
`15
`
`FIG. 97 is a conceptual diagram illustrating a partitioning line
`
`used in a wedge mode.
`
`[FIG. 98]
`
`FIG. 98 is a flow chart illustrating processing of encoding a
`
`block using the wedge mode.
`
`20
`
`[FIG. 99]
`
`FIG. 99 is a conceptual diagram illustrating an example of a
`
`plurality of partitioning line candidate sets.
`
`[FIG. 100]
`
`FIG. 100 is a conceptual diagram illustrating a plurality of
`
`25
`
`partitioning line candidate sets according to Variation 1.
`
`[FIG. 101]
`
`FIG. 101 is a conceptual diagram illustrating a plurality of
`
`partitioning line candidate sets according to Variation 2.
`
`[FIG. 102]
`
`30
`
`FIG. 102 is a conceptual diagram illustrating a plurality of
`
`partitioning line candidate sets according to Variation 3.
`
`[FIG. 103]
`
`FIG. 103 is a conceptual diagram illustrating an example of a
`
`partitioning line when the width-to-height ratio is high.
`
`35
`
`[FIG. 104]
`
`-13-
`
`
`
`FIG. 104 is a flow chart illustrating operations of an encoder
`
`according to an embodiment.
`
`[FIG. 105]
`
`FIG. 105 is a flow chart illustrating operations of a decoder
`
`according to the embodiment.
`
`[FIG. 106]
`
`FIG. 106 is a diagram illustrating an overall configuration of a
`
`content providing system for implementing a content distribution
`
`service.
`
`10
`
`[FIG. 107]
`
`FIG. 107 is a diagram illustrating an example of a display
`
`screen of a web page.
`
`[FIG. 108]
`
`FIG. 108 is a diagram illustrating an example of a display
`
`15
`
`screen of a web page.
`
`[FIG. 109]
`
`FIG.
`
`109
`
`is
`
`a diagram illustrating one
`
`example
`
`of
`
`a
`
`smartphone.
`
`[FIG. 110]
`
`20
`
`FIG. 110 is a diagram illustrating an example of a smartphone.
`
`Description of Embodiments
`
`[Introduction]
`
`For example, to encode a video, a prediction image of a block
`
`25
`
`in a picture included in the video is generated, and a difference image
`
`between the prediction image and the original image of the block is
`
`encoded.
`
`To decode a video, a difference image is decoded, a
`
`prediction image is generated, and the prediction image and the
`
`difference image are added to generate a reconstructed image of a
`
`30
`
`block. This way, the code amount is reduced.
`
`A prediction image of a block may be generated by splitting the
`
`block into two partitions and applying two different prediction
`
`processes to the two partitions.
`
`For example, a partitioning line
`
`may be determined, and the block may be split into two partitions
`
`35
`
`along the partitioning line. The partitioning line can be flexibly
`
`- 14 -
`
`
`
`determined by a distance from the center of the block and an angle
`
`corresponding to the partitioning line. This makes it possible to
`
`generate various prediction images.
`
`However, there are cases where it is inappropriate to define
`
`two partitions by a distance and an angle.
`
`By eliminating such an
`
`operation, there is a possibility of reducing useless processing and
`
`enhancing the processing efficiency.
`
`In view of the above, an encoder according to an aspect of the
`
`present disclosure is an encoder including circuitry and memory
`
`10
`
`connected to the circuitry.
`
`In the encoder,
`
`the circuitry,
`
`in
`
`operation: determines a mode to be applied to a block from a
`
`plurality of merge modes based on a width of the block and a height
`
`of the block; when the mode determined is a first mode, stores ina
`
`bitstream an index indicating a distance and an angle that define two
`
`15
`
`partitions in the block, and encodes the block using the first mode;
`
`and disables storing of the index in the bitstream when (i) the width
`
`is at least 8 times as much as the height or (ii) the height is at least
`
`8 times as much as the width.
`
`This way, there is a possibility of reducing useless processing
`
`20
`
`and enhancing the processing efficiency.
`
`Specifically, when the
`
`width-to-height ratio or the height-to-width ratio is high,
`
`it may be
`
`inappropriate to define two partitions by a distance and anangle.
`
`In
`
`such a case, by disabling the storing of the index indicating a
`
`distance and an angle in the bitstream,
`
`there is a possibility of
`
`25
`
`reducing useless processing and enhancing the processing efficiency.
`
`For example, the circuitry disables the storing of the index in
`
`the bitstream when (i) the width is 64 pixels and the height is 8 pixels
`
`or (ii) the width is 8 pixels and the height is 64 pixels.
`
`By doing so, there is a possibility that the storing of the index
`
`30
`
`indicating a distance and an angle in the bitstream is disabled when
`
`the width-to-height ratio or the height-to-width ratio is high, even if
`
`the block size is within an appropriate range. This way, there is a
`
`possibility of
`
`reducing useless processing and enhancing the
`
`processing efficiency.
`
`35
`
`For example,
`
`a
`
`line that determines shapes of
`-15-
`
`the two
`
`
`
`partitions in the block is defined by the distance and the angle, the
`
`distance is a distance between a center of the block and the line, and
`
`the angle is an angle related to the line.
`
`This way, there is a possibility of appropriately defining the
`
`line for determining the shapes of two partitions.
`
`For example, a decoder according to an aspect of the present
`
`disclosure is a decoder including circuitry and memory connected to
`
`the circuitry.
`
`Inthe decoder, the circuitry, in operation: determines
`
`a mode to be applied to a block from a plurality of merge modes
`
`10
`
`based on a width of the block and a height of the block; when the
`
`mode determined is a first mode, obtains from a bitstream an index
`
`indicating a distance and an angle that define two partitions in the
`
`block, and decodes the block using the first mode; and disables
`
`obtaining of the index from the bitstream when (i) the width is at
`
`15
`
`least 8 times as much as the height or (ii) the height is at least 8
`
`times as much as the width.
`
`This way, there is a possibility of reducing useless processing
`
`and enhancing the processing efficiency.
`
`Specifically, when the
`
`width-to-height ratio or the height-to-width ratio is high,
`
`it may be
`
`20
`
`inappropriate to define two partitions by a distance and anangle.
`
`In
`
`such a case, by disabling the obtaining of the index indicating a
`
`distance and an angle from the bitstream, there is a possibility of
`
`reducing useless processing and enhancing the processing efficiency.
`
`For example, the circuitry disables the obtaining of the index
`
`25
`
`from the bitstream when (i) the width is 64 pixels and the height is 8
`
`pixels or (ii) the width is 8 pixels and the height is 64 pixels.
`
`By doing so, there is a possibility that the obtaining of the
`
`index indicating a distance and an angle from the bitstream is
`
`disabled when the width-to-height ratio or the height-to-width ratio
`
`30
`
`is high, even if the block size is within an appropriate range. This
`
`way,
`
`there is
`
`a possibility of
`
`reducing useless processing and
`
`enhancing the processing efficiency.
`
`For example,
`
`a
`
`line that determines shapes of
`
`the two
`
`partitions in the block is defined by the distance and the angle, the
`
`35
`
`distance is a distance between a center of the block and the line, and
`
`-16-
`
`
`
`the angle is an angle related to the line.
`
`This way, there is a possibility of appropriately defining the
`
`line that determines the shapes of two partitions.
`
`For example, an encoding method according to an aspect of
`
`the present disclosure is an encoding method including: determining
`
`a mode to be applied to a block from a plurality of merge modes
`
`based on a width of the block and a height of the block; when the
`
`mode determined is a first mode, storing in a bitstream an index
`
`indicating a distance and an angle that define two partitions in the
`
`10
`
`block, and encoding the block using the first mode; and disabling the
`
`storing of the index in the bitstream when (i) the width is at least 8
`
`times as much as the height or (ii) the height is at least 8 times as
`
`much as the width.
`
`This way, there is a possibility of reducing useless processing
`
`15
`
`and enhancing the processing efficiency.
`
`Specifically, when the
`
`width-to-height ratio or the height-to-width ratio is high,
`
`it may be
`
`inappropriate to define two partitions by a distance and anangle.
`
`In
`
`such a case, by disabling the storing of the index indicating a
`
`distance and an angle in the bitstream,
`
`there is a possibility of
`
`20
`
`reducing useless processing and enhancing the processing efficiency.
`
`For example, a decoding method according to an aspect of the
`
`present disclosure is a decoding method including: determining a
`
`mode to be applied to a block from a plurality of merge modes based
`
`on a width of the block and a height of the block; when the mode
`
`25
`
`determined is a first mode, obtaining from a bitstream an index
`
`indicating a distance and an angle that define two partitions in the
`
`block, and decoding the block using the first mode; and disabling the
`
`obtaining of the index from the bitstream when (i) the width is at
`
`least 8 times as much as the height or (ii) the height is at least 8
`
`30
`
`times as much as the width.
`
`This way, there is a possibility of reducing useless processing
`
`and enhancing the processing efficiency.
`
`Specifically, when the
`
`width-to-height ratio or the height-to-width ratio is high,
`
`it may be
`
`inappropriate to define two partitions by a distance and anangle.
`
`In
`
`35
`
`such a case, by disabling the obtaining of the index indicating a
`
`- 17 -
`
`
`
`distance and an angle from the bitstream, there is a possibility of
`
`reducing useless processing and enhancing the processing efficiency.
`
`For example, an encoder according to an aspect of the present
`
`disclosure includes an input terminal, a splitter, an intra predictor,
`
`an inter predictor, a loop filter, a transformer,
`
`a quantizer, an
`
`entropy encoder, and an output terminal.
`
`A current picture is input to the input terminal. The splitter
`
`splits the current picture into a plurality of blocks.
`
`The intra predictor generates a prediction signal of a current
`
`10
`
`block included in the current picture, using a
`
`reference image
`
`included in the current picture. The inter predictor generates a
`
`prediction signal of a current block included in the current picture,
`
`using a reference image included in a reference picture different from
`
`the current picture. The loop filter applies a filter to a reconstructed
`
`15
`
`block of a current block included in the current picture.
`
`The
`
`transformer
`
`generates
`
`transform coefficients
`
`by
`
`transforming a prediction error between the original signal of a
`
`current block included in the current picture and the prediction signal
`
`generated by the intra predictor or
`
`the inter predictor.
`
`The
`
`20
`
`quantizer generates quantized coefficients
`
`by quantizing the
`
`transform coefficients. The entropy encoder generates an encoded
`
`bitstream by applying variable-length encoding to the quantized
`
`coefficients. Then,
`
`the encoded bitstream that
`
`includes control
`
`information
`
`and
`
`the
`
`quantized
`
`coefficients
`
`to which’
`
`the
`
`25
`
`variable-length encoding has been applied is output from the output
`
`terminal.
`
`For example, the inter predictor,
`
`in operation: determines a
`
`mode to be applied to a block from a plurality of merge modes based
`
`on a width of the block and a height of the block; and when the mode
`
`30
`
`determined is a first mode, stores in a bitstream an index indicating
`
`a distance and an angle that define two partitions in the block, and
`
`encodes the block using the first mode.
`
`Furthermore,
`
`the inter
`
`predictor disables storing of the index in the bitstream when (i) the
`
`width is at least 8 times as much as the height or (ii) the height is at
`
`35
`
`least 8 times as much as the width.
`
`-18 -
`
`
`
`For example, a decoder according to an aspect of the present
`
`disclosure includes an input terminal, an entropy decoder, an inverse
`
`quantizer, an inverse transformer, an intra predictor, an inter
`
`predictor, a loop filter, and an output terminal.
`
`An encoded bitstream is
`
`input
`
`to the input terminal. The
`
`entropy decoder derives
`
`quantized
`
`coefficients
`
`by
`
`applying
`
`variable-length decoding to the encoded bitstream. The inverse
`
`quantizer derives transform coefficients by inverse quantizing the
`
`quantized coefficients. The inverse transformer derives a prediction
`
`10
`
`error by inverse transforming the transform coefficients.
`
`The intra predictor generates a prediction signal of a current
`
`block included in a current picture, using a reference image included
`
`in the current picture. The inter predictor generates a prediction
`
`signal of a current block included in the current picture, using a
`
`15
`
`reference image included in a reference picture different from the
`
`current picture.
`
`The loop filter applies a filter to a reconstructed block of the
`
`current block included in the current picture. Then,
`
`the current
`
`picture is output from the output terminal.
`
`20
`
`For example, the inter predictor,
`
`in operation: determines a
`
`mode to be applied to a block from a plurality of merge modes based
`
`on a width of the block and a height of the block; and when the mode
`
`determined is a first mode, obtains from a bitstream an index
`
`indicating a distance and an angle that define two partitions in the
`
`25
`
`block, and decodes the block using the first mode. Furthermore, the
`
`inter predictor disables obtaining of the index from the bitstream
`
`when (i) the width is at least 8 times as much as the height or (ii) the
`
`height is at least 8 times as much as the width.
`
`In addition,
`
`these general or
`
`specific aspects may be
`
`30
`
`implemented using a system, a device, a method, an integrated
`
`circuit, a computer program, or a non-transitory computer-readable
`
`recording medium such as a CD-ROM, or any combination of systems,
`
`devices, methods,
`
`integrated circuits, computer programs, and
`
`recording media.
`
`35
`
`[Definitions of Terms]
`
`-19-
`
`
`
`The respective terms may be defined as indicated below as
`
`examples.
`
`(1) image
`
`An image is a data unit configured with a set of pixels,
`
`is a
`
`picture or includes blocks smaller than a picture.
`
`Images include a
`
`still image in addition to a video.
`
`(2) picture
`
`A picture is an image processing unit configured with a set of
`
`pixels, and is also referred to as a frame or a field.
`
`10
`
`(3) block
`
`A block is a processing unit which is a set of a particular
`
`number of pixels. The block is also referred to as indicated in the
`
`following examples.
`
`The
`
`shapes of blocks are not
`
`limited.
`
`Examples include a rectangle shape of MxN pixels and a square
`
`15
`
`shape of MxM pixels for the first place, and also include a triangular
`
`shape, a circular shape, and other shapes.
`
`(examples of blocks)
`
`- slice/tile/brick
`
`CTU / super block / basic splitting unit
`
`20
`
`VPDU / processing splitting unit for hardware
`
`- CU / processing block unit / prediction block unit (PU) /
`
`orthogonal transform block unit (TU) / unit
`
`- sub-block
`
`(4) pixel/sample
`
`25
`
`A pixel or sample is a smallest point of an image.
`
`Pixels or
`
`samples include not only a pixel at an i