WO2014103606A1 - 画像復号装置 - Google Patents
画像復号装置 Download PDFInfo
- Publication number
- WO2014103606A1 WO2014103606A1 PCT/JP2013/082062 JP2013082062W WO2014103606A1 WO 2014103606 A1 WO2014103606 A1 WO 2014103606A1 JP 2013082062 W JP2013082062 W JP 2013082062W WO 2014103606 A1 WO2014103606 A1 WO 2014103606A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- parameter
- prediction
- unit
- image
- flag
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Definitions
- the present invention relates to an image decoding device.
- the multi-view image encoding technique includes a parallax predictive encoding that reduces the amount of information by predicting a parallax between images when encoding images of a plurality of viewpoints, and a decoding method corresponding to the encoding method.
- a parallax predictive encoding that reduces the amount of information by predicting a parallax between images when encoding images of a plurality of viewpoints, and a decoding method corresponding to the encoding method.
- a vector representing the parallax between viewpoint images is called a displacement vector.
- the displacement vector is a two-dimensional vector having a horizontal element (x component) and a vertical element (y component), and is calculated for each block which is an area obtained by dividing one image. In order to acquire images from a plurality of viewpoints, it is common to use cameras arranged at the respective viewpoints.
- each viewpoint image is encoded as a different layer in each of a plurality of layers.
- a method for encoding a moving image composed of a plurality of layers is generally referred to as scalable encoding or hierarchical encoding.
- scalable coding high coding efficiency is realized by performing prediction between layers.
- a reference layer without performing prediction between layers is called a base layer, and other layers are called enhancement layers.
- Scalable encoding in the case where a layer is composed of viewpoint images is referred to as view scalable encoding.
- the base layer is also called a base view
- the enhancement layer is also called a non-base view.
- scalable coding when a layer is composed of a texture layer (image layer) and a depth layer (distance image layer) is called three-dimensional scalable coding.
- scalable coding in addition to view scalable coding, spatial scalable coding (pictures with low resolution as the base layer and pictures with high resolution in the enhancement layer), SNR scalable coding (image quality as the base layer) Low picture, high resolution picture as an enhancement layer).
- a base layer picture may be used as a reference picture in coding an enhancement layer picture.
- Non-Patent Document 1 H. In SVC, which is a H.264 / AVC-based scalable coding technique, a method called residual prediction that uses a base layer residual for enhancement layer prediction is known.
- Non-Patent Document 2 as a HEVC-based three-dimensional scalable coding technique, a technique for eliminating a perspective dependency in a residual prediction using a base view residual for non-base view prediction is known.
- Non-Patent Document 3 as a HEVC-based three-dimensional scalable coding technique, a technique called illuminance compensation is used in which illuminance change in pixels around the prediction target block is used for prediction of the prediction target block.
- a technique for predicting a non-base-view adaptive offset filter parameter using a base-view adaptive offset filter parameter is known. .
- Non-Patent Document 1 and Non-Patent Document 2 the residual of the base layer and the base view are referred to in the residual prediction in the enhancement layer while maintaining the required range from the bit depth of the pixel. Therefore, it is necessary to record the residual with a wide range, and there is a problem that the memory capacity for recording the residual is very large.
- Non-Patent Document 3 decoding (parsing) of an illuminance flag indicating whether or not illuminance compensation is performed on a target region is used to generate a predicted image of a target block (prediction unit). Since it is performed only in the case of parallax compensation, which is a case of using a decoded image, there is a dependency that prediction parameter derivation of the prediction unit must be performed before decoding of the illuminance flag. Considering the complexity of parallel processing and implementation, it is desirable that the two processes of flag decoding (parsing) and prediction parameter derivation are separated, so the problem that these two dependencies increase complexity is there.
- Non-Patent Document 2 the dependency on the perspective is eliminated by deleting the flag indicating whether or not the residual prediction is performed on the target region in the residual prediction. There is a problem in that it is impossible to control whether or not to perform residual prediction even for a target region for which prediction is not effective.
- the adaptive offset filter parameter prediction of Non-Patent Document 4 has a problem that the memory capacity for storing the adaptive offset filter parameters is very large because the adaptive offset filter parameters of the base view are stored as they are.
- the present invention has been made in view of the above points, and is an image decoding device, an image decoding method, an image decoding program, an image encoding device, an image encoding method, and an image decoding device that solve the problems related to memory capacity and the perspective dependency.
- An image encoding program, an image display system, and an image transmission system are provided.
- the illuminance compensation flag deriving unit for deriving the illuminance compensation flag indicating whether or not to perform illuminance compensation, and the illuminance compensation flag having a value indicating validity
- An illuminance compensation unit that generates a predicted image of the target prediction unit using an illuminance change parameter derived from an image around the target prediction unit and a reference region image of a reference image corresponding to the target prediction unit;
- the illuminance compensation flag deriving unit decodes the illuminance compensation flag from the encoded data when the prediction unit that is the generation target of the predicted image is in the merge mode.
- the illuminance compensation flag deriving unit for deriving the illuminance compensation flag indicating whether or not to perform illuminance compensation for each encoding unit, and the value indicating that the illuminance compensation flag is valid
- the prediction image of the target prediction unit is generated using the image around the target prediction unit on the target image and the illuminance change parameter derived from the reference area image of the reference image corresponding to the target prediction unit.
- An illuminance compensation unit is provided, and the illuminance compensation flag deriving unit decodes the illuminance compensation flag from the encoded data when the division mode of the encoding unit is 2N ⁇ 2N indicating that no division is performed. .
- the illuminance compensation unit that applies illuminance compensation to the motion compensated image is provided, and the illuminance compensation unit illuminates from the reference image on the reference picture and the decoded image on the decoding target picture.
- An illuminance parameter estimator for deriving parameters a and b as change parameters, and an illuminance compensation filter that performs illuminance compensation using the illuminance change parameters, the illuminance compensation filter, the motion compensation image obtained from a reference picture, and the above Illuminance compensation is performed by adding the parameter b after shifting the product of the parameter a to the right by a predetermined fixed shift constant.
- the additional prediction flag decoding unit that decodes two flags from the encoded data as the additional prediction flag indicating whether or not to perform additional prediction, and the additional prediction flag decoding unit derive An inter-prediction image generating unit that performs additional prediction on the motion compensated image according to the flag to be performed, and the additional prediction flag decoding unit decodes the second flag only when the first flag is 0. It is characterized by doing.
- the memory required for residual prediction is reduced. Also, the complexity when decoding the syntax of additional prediction is reduced.
- FIG. 1 is a schematic diagram illustrating a configuration of an image transmission system according to an embodiment of the present invention. It is a figure which shows the hierarchical structure of the data of the encoding stream which concerns on this embodiment. It is a conceptual diagram which shows an example of a reference picture list. It is a conceptual diagram which shows the example of a reference picture. It is the schematic which shows the structure of the image decoding apparatus which concerns on this embodiment. It is the schematic which shows the structure of the inter prediction parameter decoding part which concerns on this embodiment. It is the schematic which shows the structure of the merge prediction parameter derivation
- FIG. 3 It is a figure which shows the structure of the coding data of the specific merge index illumination intensity compensation skip flag ic_skip_mergeidx0_flag used by the inter prediction parameter decoding part 303F3 which concerns on this embodiment.
- FIG. 1 is a schematic diagram showing a configuration of an image transmission system 1 according to the present embodiment.
- the image transmission system 1 is a system that transmits a code obtained by encoding a plurality of layer images and displays an image obtained by decoding the transmitted code.
- the image transmission system 1 includes an image encoding device 11, a network 21, an image decoding device 31, and an image display device 41.
- the signal T indicating a plurality of layer images (also referred to as texture images) is input to the image encoding device 11.
- a layer image is an image that is viewed or photographed at a certain resolution and a certain viewpoint.
- each of the plurality of layer images is referred to as a viewpoint image.
- the viewpoint corresponds to the position or observation point of the photographing apparatus.
- the plurality of viewpoint images are images taken by the left and right photographing devices toward the subject.
- the image encoding device 11 encodes each of the signals to generate an encoded stream Te (encoded data). Details of the encoded stream Te will be described later.
- a viewpoint image is a two-dimensional image (planar image) observed at a certain viewpoint.
- the viewpoint image is indicated by, for example, a luminance value or a color signal value for each pixel arranged in a two-dimensional plane.
- one viewpoint image or a signal indicating the viewpoint image is referred to as a picture.
- the plurality of layer images include a base layer image having a low resolution and an enhancement layer image having a high resolution.
- SNR scalable encoding is performed using a plurality of layer images
- the plurality of layer images are composed of a base layer image with low image quality and an extended layer image with high image quality.
- view scalable coding, spatial scalable coding, and SNR scalable coding may be arbitrarily combined.
- encoding and decoding of an image including at least a base layer image and an image other than the base layer image is handled as the plurality of layer images.
- the image on the reference side is referred to as a first layer image
- the image on the reference side is referred to as a second layer image.
- the base layer image is treated as a first layer image and the enhancement layer image is treated as a second layer image.
- the enhancement layer image include an image of a viewpoint other than the base view, a depth image, and the like.
- the network 21 transmits the encoded stream Te generated by the image encoding device 11 to the image decoding device 31.
- the network 21 is the Internet, a wide area network (WAN: Wide Area Network), a small-scale network (LAN: Local Area Network), or a combination thereof.
- the network 21 is not necessarily limited to a bidirectional communication network, and may be a unidirectional or bidirectional communication network that transmits broadcast waves such as terrestrial digital broadcasting and satellite broadcasting.
- the network 21 may be replaced with a storage medium that records an encoded stream Te such as a DVD (Digital Versatile Disc) or a BD (Blue-ray Disc).
- the image decoding device 31 decodes each of the encoded streams Te transmitted by the network 21, and generates a plurality of decoded layer images Td (decoded viewpoint images Td).
- the image display device 41 displays all or part of the plurality of decoded layer images Td generated by the image decoding device 31. For example, in view scalable coding, a 3D image (stereoscopic image) and a free viewpoint image are displayed in all cases, and a 2D image is displayed in some cases.
- the image display device 41 includes a display device such as a liquid crystal display or an organic EL (Electro-Luminescence) display.
- a display device such as a liquid crystal display or an organic EL (Electro-Luminescence) display.
- the spatial scalable coding and SNR scalable coding when the image decoding device 31 and the image display device 41 have a high processing capability, a high-quality enhancement layer image is displayed and only a lower processing capability is provided. Displays a base layer image that does not require higher processing capability and display capability as an extension layer.
- FIG. 2 is a diagram showing a hierarchical structure of data in the encoded stream Te.
- the encoded stream Te illustratively includes a sequence and a plurality of pictures constituting the sequence.
- (A) to (f) of FIG. 2 respectively show a sequence layer that defines a sequence SEQ, a picture layer that defines a picture PICT, a slice layer that defines a slice S, a slice data layer that defines slice data, and a slice data.
- Coding Unit CU
- Sequence layer In the sequence layer, a set of data referred to by the image decoding device 31 for decoding a sequence SEQ to be processed (hereinafter also referred to as a target sequence) is defined.
- the sequence SEQ includes a video parameter set (Video Parameter Set), a sequence parameter set SPS (Sequence Parameter Set), a picture parameter set PPS (Picture Parameter Set), a picture PICT, and an additional extension, as shown in FIG.
- Information SEI Supplementplemental Enhancement Information
- the value indicated after # indicates the layer ID.
- FIG. 2 shows an example in which encoded data of # 0 and # 1, that is, layer 0 and layer 1, exists, but the type of layer and the number of layers are not dependent on this.
- the video parameter set VPS is a set of encoding parameters common to a plurality of moving images, a plurality of layers included in the moving image, and encoding parameters related to individual layers in a moving image composed of a plurality of layers.
- a set is defined.
- the sequence parameter set SPS defines a set of encoding parameters that the image decoding device 31 refers to in order to decode the target sequence. For example, the width and height of the picture are defined.
- a set of encoding parameters referred to by the image decoding device 31 in order to decode each picture in the target sequence is defined.
- a quantization width reference value (pic_init_qp_minus26) used for decoding a picture and a flag (weighted_pred_flag) indicating application of weighted prediction are included.
- a plurality of PPS may exist. In that case, one of a plurality of PPSs is selected from each picture in the target sequence.
- Picture layer In the picture layer, a set of data referred to by the image decoding device 31 for decoding a picture PICT to be processed (hereinafter also referred to as a target picture) is defined. As shown in FIG. 2 (b), the picture PICT includes slices S0 to SNS-1 (NS is the total number of slices included in the picture PICT).
- slice layer In the slice layer, a set of data referred to by the image decoding device 31 for decoding the slice S to be processed (also referred to as a target slice) is defined. As shown in FIG. 2C, the slice S includes a slice header SH and slice data SDATA.
- the slice header SH includes a coding parameter group that the image decoding device 31 refers to in order to determine a decoding method of the target slice.
- the slice type designation information (slice_type) that designates the slice type is an example of an encoding parameter included in the slice header SH.
- I slice using only intra prediction at the time of encoding (2) P slice using unidirectional prediction or intra prediction at the time of encoding, (3) B-slice using unidirectional prediction, bidirectional prediction, or intra prediction at the time of encoding may be used.
- the slice header SH may include a reference (pic_parameter_set_id) to the picture parameter set PPS included in the sequence layer.
- the slice data layer a set of data referred to by the image decoding device 31 in order to decode the slice data SDATA to be processed is defined.
- the slice data SDATA includes a coded tree block (CTB) as shown in FIG.
- the CTB is a fixed-size block (for example, 64 ⁇ 64) constituting a slice, and may be called a maximum coding unit (LCU).
- the coding tree layer defines a set of data that the image decoding device 31 refers to in order to decode the coding tree block to be processed.
- the coding tree unit is divided by recursive quadtree division.
- a node having a tree structure obtained by recursive quadtree partitioning is referred to as a coding tree.
- An intermediate node of the quadtree is a coded tree unit (CTU), and the coded tree block itself is also defined as the highest CTU.
- the CTU includes a split flag (split_flag). When the split_flag is 1, the CTU is split into four coding tree units CTU.
- the coding tree unit CTU is divided into four coding units (CU: Coded Unit).
- the coding unit CU is a terminal node of the coding tree layer and is not further divided in this layer.
- the encoding unit CU is a basic unit of the encoding process.
- the size of the coding unit is any of 64 ⁇ 64 pixels, 32 ⁇ 32 pixels, 16 ⁇ 16 pixels, and 8 ⁇ 8 pixels. It can take.
- the encoding unit layer defines a set of data referred to by the image decoding device 31 in order to decode the processing target encoding unit.
- the encoding unit includes a CU header CUH, a prediction tree, a conversion tree, and a CU header CUF.
- the CU header CUH it is defined whether the coding unit is a unit using intra prediction or a unit using inter prediction.
- the coding unit is the root of a prediction tree (PT) and a transformation tree (TT).
- the CU header CUF is included between the prediction tree and the conversion tree or after the conversion tree.
- the coding unit is divided into one or a plurality of prediction blocks, and the position and size of each prediction block are defined.
- the prediction block is one or a plurality of non-overlapping areas constituting the coding unit.
- the prediction tree includes one or a plurality of prediction blocks obtained by the above division.
- Prediction processing is performed for each prediction block.
- a prediction block which is a unit of prediction is also referred to as a prediction unit (PU, prediction unit).
- Intra prediction is prediction within the same picture
- inter prediction refers to prediction processing performed between different pictures (for example, between display times and between layer images).
- the division method is encoded by part_mode of encoded data, and 2N ⁇ 2N (the same size as the encoding unit), 2N ⁇ N, 2N ⁇ nU, 2N ⁇ nD, N ⁇ 2N, nL X2N, nRx2N, and NxN.
- 2N ⁇ nU indicates that a 2N ⁇ 2N encoding unit is divided into two regions of 2N ⁇ 0.5N and 2N ⁇ 1.5N in order from the top.
- 2N ⁇ nD indicates that a 2N ⁇ 2N encoding unit is divided into two regions of 2N ⁇ 1.5N and 2N ⁇ 0.5N in order from the top.
- nL ⁇ 2N indicates that a 2N ⁇ 2N encoding unit is divided into two regions of 0.5N ⁇ 2N and 1.5N ⁇ 2N in order from the left.
- nR ⁇ 2N indicates that a 2N ⁇ 2N encoding unit is divided into two regions of 1.5N ⁇ 2N and 0.5N ⁇ 1.5N in order from the left. Since the number of divisions is one of 1, 2, and 4, PUs included in the CU are 1 to 4. These PUs are expressed as PU0, PU1, PU2, and PU3 in order.
- the encoding unit is divided into one or a plurality of transform blocks, and the position and size of each transform block are defined.
- the transform block is one or a plurality of non-overlapping areas constituting the encoding unit.
- the conversion tree includes one or a plurality of conversion blocks obtained by the above division.
- the division in the transformation tree includes the one in which an area having the same size as that of the encoding unit is assigned as the transformation block, and the one in the recursive quadtree division like the above-described division in the tree block.
- a conversion block that is a unit of conversion is also referred to as a conversion unit (TU).
- the prediction image of the prediction unit is derived by a prediction parameter associated with the prediction unit.
- the prediction parameters include a prediction parameter for intra prediction or a prediction parameter for inter prediction.
- prediction parameters for inter prediction inter prediction (inter prediction parameters) will be described.
- the inter prediction parameter includes prediction list use flags predFlagL0 and predFlagL1, reference picture indexes refIdxL0 and refIdxL1, and vectors mvL0 and mvL1.
- the prediction list use flags predFlagL0 and predFlagL1 are flags indicating whether or not reference picture lists called L0 list and L1 list are used, respectively, and a reference picture list corresponding to a value of 1 is used.
- the prediction list utilization flag information can also be expressed by an inter prediction flag inter_pred_idx described later.
- an inter prediction flag inter_pred_idx is used in a prediction image generation unit and a prediction parameter memory, which will be described later, and an inter prediction flag inter_pred_idx is used when decoding information on which reference picture list is used from encoded data. It is done.
- Syntax elements for deriving the inter prediction parameters included in the encoded data include, for example, a partition mode part_mode, a merge flag merge_flag, a merge index merge_idx, an inter prediction flag inter_pred_idx, a reference picture index refIdxLX, a prediction vector index mvp_LX_idx, and a difference There is a vector mvdLX.
- FIG. 3 is a conceptual diagram illustrating an example of a reference picture list.
- the reference picture list 601 five rectangles arranged in a line on the left and right indicate reference pictures, respectively.
- the codes P1, P2, Q0, P3, and P4 shown in order from the left end to the right are codes indicating the respective reference pictures.
- P such as P1 indicates the viewpoint P
- Q of Q0 indicates a viewpoint Q different from the viewpoint P.
- the subscripts P and Q indicate the picture order number POC.
- a downward arrow directly below refIdxLX indicates that the reference picture index refIdxLX is an index for referring to the reference picture Q0 in the reference picture memory 306.
- FIG. 4 is a conceptual diagram illustrating an example of a reference picture.
- the horizontal axis indicates the display time
- the vertical axis indicates the viewpoint.
- the rectangles shown in FIG. 4 with 2 rows and 3 columns (6 in total) indicate pictures.
- the rectangle in the second column from the left in the lower row indicates a picture to be decoded (target picture), and the remaining five rectangles indicate reference pictures.
- a reference picture Q0 indicated by an upward arrow from the target picture is a picture that has the same display time as the target picture and a different viewpoint. In the displacement prediction based on the target picture, the reference picture Q0 is used.
- a reference picture P1 indicated by a left-pointing arrow from the target picture is a past picture at the same viewpoint as the target picture.
- a reference picture P2 indicated by a right-pointing arrow from the target picture is a future picture at the same viewpoint as the target picture. In motion prediction based on the target picture, the reference picture P1 or P2 is used.
- Inter prediction flag and prediction list usage flag The relationship between the inter prediction flag and the prediction list use flags predFlagL0 and predFlagL1 can be mutually converted as follows. Therefore, as an inter prediction parameter, a prediction list use flag may be used, or an inter prediction flag may be used. In addition, hereinafter, the determination using the prediction list use flag may be replaced with the inter prediction flag. Conversely, the determination using the inter prediction flag can be performed by replacing the prediction list use flag.
- >> is a right shift
- ⁇ is a left shift.
- the prediction parameter decoding (encoding) method includes a merge prediction (merge) mode and an AMVP (Adaptive Motion Vector Prediction) mode.
- the merge flag merge_flag is a flag for identifying these.
- the prediction parameter of the target PU is derived using the prediction parameter of the already processed block.
- the merge prediction mode is a mode in which the prediction parameter already used is used as it is without including the prediction list use flag predFlagLX (inter prediction flag inter_pred_idx), the reference picture index refIdxLX, and the vector mvLX in the encoded data.
- the prediction flag inter_pred_idx, the reference picture index refIdxLX, and the vector mvLX are included in the encoded data.
- the vector mvLX is encoded as a prediction vector index mvp_LX_idx indicating a prediction vector and a difference vector (mvdLX).
- the inter prediction flag inter_pred_idc is data indicating the type and number of reference pictures, and takes one of the values Pred_L0, Pred_L1, and Pred_Bi.
- Pred_L0 and Pred_L1 indicate that reference pictures stored in reference picture lists called an L0 list and an L1 list are used, respectively, and that both use one reference picture (single prediction). Prediction using the L0 list and the L1 list are referred to as L0 prediction and L1 prediction, respectively.
- Pred_Bi indicates that two reference pictures are used (bi-prediction), and indicates that two reference pictures stored in the L0 list and the L1 list are used.
- the prediction vector index mvp_LX_idx is an index indicating a prediction vector
- the reference picture index refIdxLX is an index indicating a reference picture stored in the reference picture list.
- LX is a description method used when L0 prediction and L1 prediction are not distinguished.
- refIdxL0 is a reference picture index used for L0 prediction
- refIdxL1 is a reference picture index used for L1 prediction
- refIdx (refIdxLX) is a notation used when refIdxL0 and refIdxL1 are not distinguished.
- the merge index merge_idx is an index indicating whether any prediction parameter is used as a prediction parameter of a decoding target block among prediction parameter candidates (merge candidates) derived from a block for which processing has been completed.
- the vector mvLX includes a motion vector and a displacement vector (disparity vector).
- a motion vector is a positional shift between the position of a block in a picture at a certain display time of a layer and the position of the corresponding block in a picture of the same layer at a different display time (for example, an adjacent discrete time). It is a vector which shows.
- the displacement vector is a vector indicating a positional shift between the position of a block in a picture at a certain display time of a certain layer and the position of a corresponding block in a picture of a different layer at the same display time.
- the pictures in different layers may be pictures from different viewpoints or pictures with different resolutions.
- a displacement vector corresponding to pictures of different viewpoints is called a disparity vector.
- a vector mvLX A prediction vector and a difference vector related to the vector mvLX are referred to as a prediction vector mvpLX and a difference vector mvdLX, respectively.
- Whether the vector mvLX and the difference vector mvdLX are motion vectors or displacement vectors is determined using a reference picture index refIdxLX associated with the vectors.
- FIG. 5 is a schematic diagram illustrating a configuration of the image decoding device 31 according to the present embodiment.
- the image decoding device 31 includes an entropy decoding unit 301, a prediction parameter decoding unit 302, a reference picture memory (reference image storage unit, frame memory) 306, a prediction parameter memory (prediction parameter storage unit, frame memory) 307, and a prediction image generation unit 308.
- the prediction parameter decoding unit 302 includes an inter prediction parameter decoding unit 303 and an intra prediction parameter decoding unit 304.
- the predicted image generation unit 308 includes an inter predicted image generation unit 309 and an intra predicted image generation unit 310.
- the entropy decoding unit 301 performs entropy decoding on the encoded stream Te input from the outside, and separates and decodes individual codes (syntax elements).
- the separated codes include prediction information for generating a prediction image and residual information for generating a difference image.
- the entropy decoding unit 301 outputs a part of the separated code to the prediction parameter decoding unit 302.
- Some of the separated codes are, for example, a prediction mode PredMode, a partition mode part_mode, a merge flag merge_flag, a merge index merge_idx, an inter prediction flag inter_pred_idx, a reference picture index refIdxLX, a prediction vector index mvp_LX_idx, and a difference vector mvdLX.
- Control of which code to decode is performed based on an instruction from the prediction parameter decoding unit 302.
- the entropy decoding unit 301 outputs the quantization coefficient to the inverse quantization / inverse DCT unit 311.
- This quantization coefficient is a coefficient obtained by performing DCT (Discrete Cosine Transform, Discrete Cosine Transform) on the residual signal and quantizing it in the encoding process.
- the inter prediction parameter decoding unit 303 decodes the inter prediction parameter with reference to the prediction parameter stored in the prediction parameter memory 307 based on the code input from the entropy decoding unit 301.
- the inter prediction parameter decoding unit 303 outputs the decoded inter prediction parameter to the prediction image generation unit 308 and stores it in the prediction parameter memory 307. Details of the inter prediction parameter decoding unit 303 will be described later.
- the intra prediction parameter decoding unit 304 refers to the prediction parameter stored in the prediction parameter memory 307 on the basis of the code input from the entropy decoding unit 301 and decodes the intra prediction parameter.
- the intra prediction parameter is a parameter used in a process of predicting a picture block within one picture, for example, an intra prediction mode IntraPredMode.
- the intra prediction parameter decoding unit 304 outputs the decoded intra prediction parameter to the prediction image generation unit 308 and stores it in the prediction parameter memory 307.
- the intra prediction parameter decoding unit 304 may derive different intra prediction modes depending on luminance and color difference.
- the intra prediction parameter decoding unit 304 decodes the luminance prediction mode IntraPredModeY as the luminance prediction parameter and the color difference prediction mode IntraPredModeC as the color difference prediction parameter.
- the luminance prediction mode IntraPredModeY is a 35 mode and corresponds to planar prediction (0), DC prediction (1), and direction prediction (2 to 34).
- the color difference prediction mode IntraPredModeC uses one of planar prediction (0), DC prediction (1), direction prediction (2, 3, 4), and LM mode (5).
- the reference picture memory 306 stores the reference picture block (reference picture block) generated by the adding unit 312 at a predetermined position for each picture and block to be decoded.
- the prediction parameter memory 307 stores the prediction parameter in a predetermined position for each decoding target picture and block. Specifically, the prediction parameter memory 307 stores the inter prediction parameter decoded by the inter prediction parameter decoding unit 303, the intra prediction parameter decoded by the intra prediction parameter decoding unit 304, and the prediction mode predMode separated by the entropy decoding unit 301. .
- the inter prediction parameters stored include, for example, a prediction list use flag predFlagLX (inter prediction flag inter_pred_idx), a reference picture index refIdxLX, and a vector mvLX.
- the prediction image generation unit 308 receives the prediction mode predMode input from the entropy decoding unit 301 and the prediction parameter from the prediction parameter decoding unit 302. Further, the predicted image generation unit 308 reads a reference picture from the reference picture memory 306. The prediction image generation unit 308 generates a prediction picture block P (prediction image) using the input prediction parameter and the read reference picture in the prediction mode indicated by the prediction mode predMode.
- the inter prediction image generation unit 309 uses the inter prediction parameter input from the inter prediction parameter decoding unit 303 and the read reference picture to perform the prediction picture block P by inter prediction. Is generated.
- the predicted picture block P corresponds to the prediction unit PU.
- the PU corresponds to a part of a picture composed of a plurality of pixels as a unit for performing the prediction process as described above, that is, a decoding target block on which the prediction process is performed at a time.
- the inter prediction image generation unit 309 performs, for a reference picture list (L0 list or L1 list) whose prediction list use flag predFlagLX is 1, from the reference picture indicated by the reference picture index refIdxLX, based on the decoding target block, as a vector mvLX
- the reference picture block at the position indicated by is read from the reference picture memory 306.
- the inter prediction image generation unit 309 performs prediction on the read reference picture block to generate a prediction picture block P.
- the inter prediction image generation unit 309 outputs the generated prediction picture block P to the addition unit 312.
- the intra prediction image generation unit 310 When the prediction mode predMode indicates the intra prediction mode, the intra prediction image generation unit 310 performs intra prediction using the intra prediction parameter input from the intra prediction parameter decoding unit 304 and the read reference picture. Specifically, the intra predicted image generation unit 310 reads, from the reference picture memory 306, a reference picture block that is a decoding target picture and is in a predetermined range from the decoding target block among blocks that have already been decoded.
- the predetermined range is, for example, any of the left, upper left, upper, and upper right adjacent blocks when the decoding target block sequentially moves in a so-called raster scan order, and varies depending on the intra prediction mode.
- the raster scan order is an order in which each row is sequentially moved from the left end to the right end in each picture from the upper end to the lower end.
- the intra-prediction image generation unit 310 performs prediction in the prediction mode indicated by the intra-prediction mode IntraPredMode for the read reference picture block, and generates a prediction picture block.
- the intra predicted image generation unit 310 outputs the generated predicted picture block P to the addition unit 312.
- the intra prediction image generation unit 310 performs planar prediction (0), DC prediction (1), direction according to the luminance prediction mode IntraPredModeY.
- a prediction picture block of luminance is generated according to any of prediction (2 to 34), and planar prediction (0), DC prediction (1), direction prediction (2, 3, 4), LM according to the color difference prediction mode IntraPredModeC
- a color difference prediction picture block is generated in any one of modes (5).
- the regularization term is a term that is added as a parameter cost to the objective function in the prediction parameter derivation by the least square method.
- the LM mode uses a processed image adjacent to the target block to derive a prediction parameter for predicting a color difference pixel value from the luminance pixel value, and based on the prediction parameter, from the processed luminance block, Generate color difference picture blocks. Such prediction is called LM prediction.
- the prediction method is the same as that of an illuminance compensation unit 3093 described later.
- the intra predicted image generation unit 310 that uses a regularization term in the derivation as a prediction parameter is referred to as an intra predicted image generation unit 310E.
- the intra predicted image generation unit 310E includes a DC prediction unit 3101, a planar prediction unit 3102, a direction prediction unit 3103, and an LM prediction unit 3104E (not shown).
- FIG. 80 is a block diagram illustrating a configuration of the LM prediction unit 3104E.
- the LM prediction unit 3104E includes an LM parameter estimation unit 31041 and an LM filter unit 31042.
- the LM parameter estimation unit 31041 includes an LM integrated shift value deriving unit 310411, an LM integrated value deriving unit 310412, an LM addition value deriving unit 310413, an LM first parameter deriving unit 310414, an LM second parameter deriving unit 310415, and an LM parameter a deriving unit.
- the LM accumulated shift value deriving unit 310411 sets the accumulated shift value precShift to a value exceeding the accumulated shift value precShift when the bit depth bitDepth of the pixel exceeds a predetermined constant (here, 13) as in the following expression (LM-1). Only the integrated shift value precShift is derived. When it does not exceed, the integrated shift value precShift is set to 0.
- precShift Max (0, bitDepth-13) Formula (LM-1)
- the derived integrated shift value precShift is output to the LM integrated value deriving unit 310412, the LM first parameter deriving unit 310414, and the LM second parameter deriving unit 310415.
- the LM parameter estimation unit 31041 displays the luminance image adjacent to the target block as the adjacent luminance image x [], the color difference image adjacent to the target block as the adjacent color difference image y [], and the adjacent luminance image x [] and the adjacent color difference.
- Parameter a and parameter b are derived from image y [].
- the LM addition value deriving unit 310413 derives the sum Y of the pixel values of the adjacent color difference image and the sum X of the pixel value of the adjacent luminance image by the following equations (LM-2) and (LM-3).
- ⁇ a sum with respect to the reference region, and a sum with respect to an index i specifying a pixel in the reference region is derived.
- X, Y, XY, and XX are initialized to 0 before summation.
- x [i] is the pixel value at index i of the adjacent luminance image.
- y [i] is the pixel value at index i of the adjacent color difference image.
- the count shift value iCountShift is a logarithm of 2 of the size (number of pixels) of the reference area.
- the number of bits necessary for the calculation is twice the logarithm of the maximum value of the size of the reference area (the maximum value of the count shift iCountShift) twice the bit depth bitDepth of the pixel.
- the maximum value of the luminance block size is 64
- the maximum value of the color difference block size is 32
- the maximum value of the size of the reference area is 64.
- the maximum value of the count shift iCountShift is 6 from the logarithm of 2 of 64. Therefore, the required number of bits is bitDepth * 2 + 6.
- bitDepth * 2 + 6 ⁇ 32
- bitDepth ⁇ 13
- bitDepth is 13 or less, it does not exceed 32 bits.
- bitDepth exceeds 13
- bitDepth-13 corresponding to the excess is derived as the integrated shift value precShift.
- the expressions (LM-4) and (LM-5) have an effect of preventing exceeding the range of 32 bits by adding after shifting by the integrated shift value precShift in advance.
- the LM first parameter deriving unit 310414 generates the sum XY of the product of the pixel value y of the adjacent color difference image and the pixel value x of the adjacent luminance image, the sum Y of the pixel value of the adjacent color difference image, and the sum X of the pixel value of the adjacent luminance image.
- the first parameter a1 is derived from the difference between the products of
- the LM second parameter deriving unit 310415 derives the second parameter a2 by the following expression from the difference between the square XX of the pixel values of the adjacent luminance image and the square of the sum X of the pixel values of the adjacent luminance image.
- the LM first parameter deriving unit 310414 and the LM second parameter deriving unit 310415 are further fixed to a predetermined value when the sum of the count shift value iCountShift and the bit depth bitDepth is equal to or greater than a predetermined value (27 in this case).
- the parameters a1 and a2 are shifted right by the parameter shift value (here, 4). That is, the following steps are executed.
- FIG. 81 is a block diagram showing a configuration of the LM parameter a deriving unit 310416.
- the LM parameter a derivation unit 310416 includes an LM first parameter clip unit 3104161, an LM first parameter shift unit 3104162, an LM second parameter shift unit 3104163, and an LM table base parameter a derivation unit 3104164.
- the LM first parameter clip unit 3104161 limits the first parameter a1 according to the size of the second parameter a2. For example, as shown in the following expression, a1 is clipped to -3 * a2 or more and a2 * 3 or less.
- a1 Clip3 (-3 * a2, 3 * a2, a1) formula (LM-12)
- the LM first parameter shift unit 3104162 derives the first normalized shift value iScaleShiftA1 according to the following equation according to the magnitude of the first parameter a1.
- the derived first normalized shift value iScaleShiftA1 is output to the LM table base parameter a derivation unit 3104164.
- iScaleShiftA1 Max (0, GetMSB (abs (a1))-15) Formula (LM-13)
- the LM second parameter shift unit 3104163 derives the second normalized shift value iScaleShiftA2 by the following equation according to the magnitude of the second parameter a2.
- the derived second normalized shift value iScaleShiftA2 is output to the LM table base parameter a derivation unit 3104164.
- iScaleShiftA2 Max (0, GetMSB (abs (a2))-6) Formula (LM-14)
- the LM first parameter shift unit 3104162 and the LM second parameter shift unit 3104163 right-shift the first parameter a1 by the first normalized shift value iScaleShiftA1, the second parameter a2 by the second normalized shift value iScaleShiftA2,
- One parameter a1s and a normalized second parameter a2s are derived.
- a1s a1 >> iScaleShiftA1 formula (LM-15)
- a2s a2 >> iScaleShiftA2 formula (LM-16)
- the LM table base parameter a derivation unit 3104164 derives the parameter a shift value iScaleShiftA using the following equation.
- ScaleShiftA iScaleShiftA2-iScaleShiftA1 + 15-iShift formula (LM-18)
- the LM table base parameter a deriving unit 3104164 refers to the reciprocal table value invTable determined according to the normalized second parameter a2s, takes the product with the normalized first parameter a1s, and shifts to the right by the table shift value (ScaleShiftA).
- the parameter a is derived by the following equation.
- a (a1s * invTable [a2s]) ⁇ (-ScaleShiftA) formula (LM-19 ')
- the value of the parameter a is the ratio of the first parameter a1 and the second parameter a2 (corresponding to a value obtained by shifting a1 / a2 to the left by iShift).
- FIG. 84 shows the reciprocal table value invTable [] used in this embodiment.
- the reciprocal invTable [x] in FIG. 84 becomes 0 when the index x is 0, and when the index is other than 0, the predetermined constant (2 to the 15th power here) M is divided by x to become an integer.
- invTable [x] 0 (when x is 0)
- Expression (T-1) invTable [x] Floor ((M / x / 2) / x) (when x is other than 0)
- Floor (x) is a function that rounds off the decimal part.
- the formula (T-2 ′) may be used. That is, it is not necessary to perform round adjustment for adding 1/2 times the divisor x.
- invTable [x] Floor (M / x) (when x is other than 0) Expression (T-2 ')
- the operation equivalent to division by a2s is realized by the product of the reciprocal table value invTable [a2s] corresponding to the reciprocal of a2s and the right shift corresponding to log2 (M) can do.
- a problem-free result can be obtained even when the parameter a is set to 0 and the calculation is performed only by adding the parameter b.
- the reciprocal table invTable [x] is not defined, another operation for setting the parameter a to 0 is used when x is 0, or the parameter a is set when x is 0. It is necessary to set 1 ⁇ iShift.
- a parameter a clip unit may be provided, and the range of the parameter a may be clipped to ⁇ 128 or more and 127 or less, which is an 8-bit integer, by the following calculation.
- the derived parameter a is output to the LM parameter b deriving unit 310417 and the LM filter unit 31042.
- the LM parameter b deriving unit 310417 refers to a value obtained by subtracting a value right shifted by a fixed shift value iShift by multiplying the sum X of pixel values of the adjacent luminance image by the parameter a from the sum Y of pixel values of the adjacent color difference image.
- the parameter b is derived by the following equation.
- iCountShift (Y-((a * X) >> iShift) + (1 ⁇ (iCountShift-1))) >> iCountShift expression (LM-20) Note that the right shift of iCountShift corresponds to dividing by the number of pixels in the reference area.
- the LM filter unit 31042 derives the color difference prediction image predSamplesC [] after the LM prediction from the luminance decoded image predSamplesY [] using the estimation parameter derived by the LM parameter estimation unit 31041.
- the parameter b is derived from the equation (LM-20)
- the following equation is used.
- predSamplesC [x] [y] (a * predSamplesY [x / 2] [y / 2] >> iShift) + b formula (LM-21)
- an LM parameter b deriving unit 310417 ′ having another configuration of the LM parameter b deriving unit 310417 may be used.
- the value obtained by subtracting the value obtained by multiplying the sum X of the pixel values of the adjacent luminance image by the parameter a from the value obtained by shifting the sum Y of the pixel values of the adjacent color difference image by the fixed shift value iShift is the number of reference pixels.
- the parameter b may be derived by the following equation by dividing by:
- FIG. 82 is a block diagram illustrating a configuration of the LM regularization term addition unit 310418E.
- the LM regularization term addition unit 310418E includes an LM regularization term derivation unit 3104180E, an LM first parameter regularization term addition unit 3104181E, and an LM second parameter regularization term addition unit 3104182E.
- the LM regularization term derivation unit 3104180E derives the regularization term acost.
- the LM first parameter regularization term addition unit 3104181E adds the regularization term to a parameter (for example, XY) used for derivation of the first parameter.
- XY XY + acost formula (E-2)
- the LM second parameter regularization term adding unit 3104182E adds the regularization term to a parameter (for example, XX) used for derivation of the second parameter.
- XX XX + acost formula (E-3)
- the addition of the regularization term may be performed by the LM first parameter deriving unit 310414 and the LM second parameter deriving unit 310415.
- the first parameter and the second parameter are derived by the following equations instead of the equations (LM-7) and (LM-8).
- a1 ((XY + acost) ⁇ iCountShift)-(Y * Y) >>precShift;
- Formula (E-2 ') a2 ((XX + acost) ⁇ iCountShift)-(X * X) >>precShift;
- Formula (E-3 ') In the configuration of the LM parameter estimation unit 31041E, as shown in FIG. 84, the reciprocal table invTable [x] is defined so as to be 0 when the index x is 0, and the reciprocal table invTable [x thus defined is defined.
- the second parameter (normalized second parameter) derived from the difference between the square sum XX of the pixel values of the adjacent luminance image and the square of the sum x of the pixel values of the adjacent luminance image.
- the appropriate parameter a can be obtained without changing the calculation method depending on whether the normalized second parameter (second parameter) is 0 or not. The effect of reducing the amount of processing can be obtained.
- the index x is other than 0, it is appropriate to use a value obtained by dividing a predetermined value and a value obtained by dividing x by an integer for the reciprocal table invTable [x].
- the sum XY of the product of the pixel value y of the adjacent color difference image and the pixel value x of the adjacent luminance image, the sum Y of the pixel value of the adjacent color difference image, and the sum of the pixel value of the adjacent luminance image When deriving the first parameter a1 derived from the difference between the products of X, the regularization term acost is added, and the sum XX of the squares of the pixel values of the adjacent luminance image and the pixel values of the adjacent luminance image The same regularization term acost is added when the second parameter a2 derived from the square difference of the sum X is derived.
- the parameter a is derived from the first parameter a1 and the second parameter a2 to which the regularization term is added. As a result, the parameter a is substantially close to 1 (actually close to 1 ⁇ iShift using the fixed shift value iShift), so that the estimated parameter is robust when there is an outlier or the like. become.
- the estimated parameters are robust, the estimation accuracy of LM prediction is improved and the coding efficiency is improved.
- LM prediction unit 3104H LM prediction unit 3104H
- the LM prediction unit 3104H which is a modification of the LM prediction unit 3104E, will be described.
- FIG. 88 is a block diagram showing a configuration of the LM prediction unit 3104H.
- the LM prediction unit 3104H includes an LM parameter estimation unit 31041H and an LM prediction filter unit 31042H.
- the LM parameter estimation unit 31041H includes an LM addition value deriving unit 310413H, an LM first parameter deriving unit 310414H, an LM second parameter deriving unit 310415H, an LM parameter a deriving unit 310416H, an LM parameter b deriving unit 310417H, and an LM regularization term adding unit. 310418H.
- the LM parameter estimation unit 31041H displays the luminance image adjacent to the target block as the adjacent luminance image x [], the color difference image adjacent to the target block as the adjacent color difference image y [], and the adjacent luminance image x [] and the adjacent color difference.
- Parameter a and parameter b are derived from image y [].
- the LM addition value deriving unit 310413H derives the sum Y of the pixel values of the adjacent color difference images and the sum X of the pixel values of the adjacent luminance images by the following equations (LM-2) and (LM-3).
- ⁇ ⁇ x [i] formula (LM-2)
- Y ⁇ y [i] formula (LM-3)
- ⁇ is a sum with respect to the reference region, and a sum with respect to an index i specifying a pixel in the reference region is derived.
- y [i] is the pixel value at index i of the decoded image
- x [i] is the pixel value at index i of the reference image.
- the count shift value iCountShift is a logarithm of 2 of the size (number of pixels) of the reference area.
- the LM first parameter deriving unit 310414H derives the first parameter a1 from the sum Y of the pixel values of the adjacent color difference images by the following equation.
- the LM second parameter deriving unit 310415H derives the second parameter a2 from the sum X of the pixel values x of the adjacent luminance images by the following expression.
- a2 X formula (LM-8 ')
- the derived first parameter a1 and second parameter a2 are output to the LM parameter a deriving unit 310416H.
- FIG. 89 is a block diagram illustrating a configuration of the LM regularization term addition unit 310418H.
- the LM regularization term addition unit 310418H includes an LM regularization term derivation unit 3104180H, an LM first regularization term addition unit 3104181H, and an LM second regularization term addition unit 3104182H.
- the LM regularization term derivation unit 3104180H derives the regularization term acost from the sum X of the pixel values of the adjacent luminance images.
- acost X >> ashift formula (LM-1 ')
- ashift is a predetermined constant, and is used to adjust the size of the regularization term acost by the right shift.
- the sum X of the pixel values of the adjacent luminance image and the sum Y of the pixel values of the adjacent color difference image are substantially equal. Therefore, even if the regularization term acost is derived from the sum Y of the pixel values of the adjacent color difference image. good.
- the LM first parameter regularization term addition unit 3104181E adds the regularization term to a parameter (for example, Y) used for derivation of the first parameter.
- the LM second parameter regularization term adding unit 3104182E adds the regularization term to a parameter (for example, X) used for deriving the second parameter.
- X X + acost formula (LM-3 ')
- the addition of the regularization term may be performed by the LM first parameter deriving unit 310414H and the LM second parameter deriving unit 310415H.
- the first parameter and the second parameter are derived by the following expressions instead of the expressions (LM-7 ′′) and (LM-8 ′′).
- FIG. 90 is a block diagram illustrating a configuration of the LM parameter a deriving unit 310416H.
- the LM parameter a derivation unit 310416H includes an LM parameter clip unit 3104161H, an LM second normalization shift unit 3104163H, and an LM table base parameter a derivation unit 3104164H.
- the LM second normalization shift unit 3104163H derives the second normalization shift value iScaleShiftA2 by the following equation according to the magnitude of the second parameter a2.
- the derived LM second normalized shift value iScaleShiftA2 is output to the LM table base parameter a derivation unit 3104164H.
- iScaleShiftA2 Max (0, GetMSB (abs (a2))-6) Formula (B-14)
- the LM second normalization shift unit 3104163H right shifts the second parameter a2 by the second normalization shift value iScaleShiftA2, and derives the normalization second parameter a2s.
- a2s a2 >> iScaleShiftA2 formula (B-16)
- the LM table base parameter a deriving unit 3104164H derives the parameter a shift value ScaleShiftA by the following equation.
- the LM table base parameter a deriving unit 3104164H refers to the reciprocal table value invTable determined according to the normalized second parameter a2s as in the following equation, takes the product with the normalized first parameter a1, and obtains the table shift value.
- Parameter a is derived by shifting right with ScaleShiftA.
- FIG. 84 shows the reciprocal table value invTable [] used in this embodiment.
- the reciprocal invTable [x] in FIG. 84 becomes 0 when the index x is 0, and when the index x is other than 0, a predetermined constant M (here, 2 to the 15th power) is x. Derived from the integer value obtained by dividing.
- parameter a corresponds to the ratio of the first parameter a1 and the second parameter a2 (a1 / a2 is left-shifted by iShift).
- the LM parameter clip unit 3104161H clips the range of parameter a to -128 or more and 127 or less, which is an 8-bit integer variable, by the following calculation.
- a Clip3 (-128, 127, a) formula (LM-12 ') It should be noted that other values may be used as long as the minimum value of the clip range is ⁇ 128 or more and the maximum value is 127 or less. For example, the following ranges may be used.
- LM parameter b deriving unit 310417 derives the parameter b using the equation (LM-20) as already described.
- the LM filter unit 31042H derives the color difference prediction image predSamplesC [] after the LM prediction from the luminance decoded image predSamplesY [] using the estimation parameters a and b derived by the LM parameter estimation unit 31041H.
- the LM filter unit 31042 subtracts (1 ⁇ (bitDepth-1)) from the luminance decoded image predSamplesY [] when the bit depth of the pixel is bitDepth as in the following equation (LM-21 ′)
- the value a is multiplied by the parameter a, right-shifted by the shift value iShift, and the parameter b and (1 ⁇ (bitDepth-1)) are added to derive the color difference prediction image predSamplesC []. .
- predSamplesC [x] [y] (a * (predSamplesY [x / 2] [y / 2]-(1 ⁇ (bitDepth-1))) >> iShift) + b + (1 ⁇ (bitDepth-1) )
- bitDepth 8 bits
- the range of predSamplesY is 0 to 255 and (1 ⁇ (bitDepth-1)) is 128, so predSamplesY [x / 2] [y / 2]-(1 ⁇ ( bitDepth-1)) is an 8-bit integer ranging from -128 to 127.
- the parameter a is clipped so as to be -128 to 127, the product of the value obtained by subtracting a predetermined value from the pixel value and the parameter a can be processed by an arithmetic operation between 8-bit integers.
- the same regularization term is added to the first parameter a1 and the second parameter a2, and then the parameter a having a value corresponding to the ratio between the first parameter a1 and the second parameter a2 is calculated.
- the regularization term may be generated from the sum X of the pixel values x of the adjacent luminance images, or may be generated from the sum Y of the pixel values y of the adjacent color difference images.
- the table shift value ScaleShiftA is always 0 or more. Therefore, depending on whether or not the table shift value ScaleShiftA is 0 or more (positive), without switching between the right shift expression (LM-19) and the left shift expression (LM-19 '), It can be derived only with a right shift.
- the reciprocal table invTable [x] is defined so as to be 0 when the index x is 0, and the reciprocal table invTable [x] defined in this way is defined. Is derived by subtracting the parameter a based on the second parameter (normalized second parameter) derived from the sum Y of the pixel values y of the decoded image, thereby obtaining the second parameter (normalized second parameter). Depending on whether or not is 0, an appropriate parameter a can be obtained without changing the calculation method, so that the processing amount is reduced.
- the parameter a is clipped to the 8-bit non-negative integer range by the LM parameter clip unit 3104161H. Therefore, when the bit depth of the pixel value is 8 bits, the parameter a and the pixel value Can be processed as a product of 8-bit non-negative integers, so that the processing by SIMD calculation or the like is facilitated.
- the parameter a is clipped to an 8-bit integer range by the LM parameter clipping unit 3104161H. Therefore, when the bit depth of the pixel value is 8 bits, the parameter a and the pixel value Since the product can be processed as a product of 8-bit integers, there is an effect that the processing by SIMD calculation or the like becomes easy.
- the processing amount is reduced.
- a configuration in which the LM parameter a derivation unit 310416H2 is used instead of the LM parameter a derivation unit 310416H in the LM parameter estimation unit 31041H in the LM prediction unit 3104H is also possible.
- FIG. 91 is a block diagram showing a configuration of the LM parameter a deriving unit 310416H2.
- the LM parameter a derivation unit 310416H2 includes an LM parameter clip unit 3104161H and an LM division parameter a derivation unit 3104165H.
- the LM division parameter a deriving unit 3104165H derives the parameter a from the following equation based on the ratio of the first parameter and the second parameter.
- the LM parameter clipping unit 3104161H clips the range of the parameter a to the range of the 8-bit non-negative variable.
- the same regularization term is added to the first parameter a1 and the second parameter a2, and then the parameter a having a value corresponding to the ratio between the first parameter a1 and the second parameter a2 is calculated.
- the parameter a is clipped to an 8-bit integer range by the LM parameter clipping unit 3104161H. Therefore, when the bit depth of the pixel value is 8 bits, the parameter a and the pixel value Since the product can be processed as a product of 8-bit integers, there is an effect that the processing by SIMD calculation or the like becomes easy.
- the LM parameter a derivation unit 310416H2 uses division to derive the parameter a. Division is an operation that is relatively complicated. However, the accuracy of the parameter a is improved by that amount, so that the encoding efficiency is increased.
- the inverse quantization / inverse DCT unit 311 inversely quantizes the quantization coefficient input from the entropy decoding unit 301 to obtain a DCT coefficient.
- the inverse quantization / inverse DCT unit 311 performs inverse DCT (Inverse Discrete Cosine Transform, Inverse Discrete Cosine Transform) on the obtained DCT coefficient to calculate a decoded residual signal.
- the inverse quantization / inverse DCT unit 311 outputs the calculated decoded residual signal to the addition unit 312 and the residual storage unit 313.
- the adder 312 outputs the prediction picture block P input from the inter prediction image generation unit 309 and the intra prediction image generation unit 310 and the signal value of the decoded residual signal input from the inverse quantization / inverse DCT unit 311 for each pixel. Addition to generate a reference picture block.
- the adder 312 stores the generated reference picture block in the reference picture memory 306, and outputs a decoded layer image Td in which the generated reference picture block is integrated for each picture to the outside. (Configuration of inter prediction parameter decoding unit) Next, the configuration of the inter prediction parameter decoding unit 303 will be described.
- FIG. 6 is a schematic diagram illustrating a configuration of the inter prediction parameter decoding unit 303 according to the present embodiment.
- the inter prediction parameter decoding unit 303 includes an inter prediction parameter decoding control unit 3031, an AMVP prediction parameter derivation unit 3032, an addition unit 3035, and a merge prediction parameter derivation unit 3036.
- the inter prediction parameter decoding control unit 3031 instructs the entropy decoding unit 301 to decode a code related to inter prediction (the syntax element) includes, for example, a division mode part_mode, a merge included in the encoded data.
- a flag merge_flag, a merge index merge_idx, an inter prediction flag inter_pred_idx, a reference picture index refIdxLX, a prediction vector index mvp_LX_idx, and a difference vector mvdLX are extracted.
- the inter prediction parameter decoding control unit 3031 first extracts a merge flag.
- the inter prediction parameter decoding control unit 3031 expresses that a certain syntax element is to be extracted, it means that the entropy decoding unit 301 is instructed to decode a certain syntax element, and the corresponding syntax element is read from the encoded data. To do.
- the inter prediction parameter decoding control unit 3031 extracts the merge index merge_idx as a prediction parameter related to merge prediction.
- the inter prediction parameter decoding control unit 3031 outputs the extracted merge index merge_idx to the merge prediction parameter deriving unit 3036.
- the inter prediction parameter decoding control unit 3031 uses the entropy decoding unit 301 to extract the AMVP prediction parameter from the encoded data.
- the AMVP prediction parameters include an inter prediction flag inter_pred_idc, a reference picture index refIdxLX, a vector index mvp_LX_idx, and a difference vector mvdLX.
- the inter prediction parameter decoding control unit 3031 outputs the prediction list use flag predFlagLX derived from the extracted inter prediction flag inter_pred_idx and the reference picture index refIdxLX to the AMVP prediction parameter derivation unit 3032 and the prediction image generation unit 308 (FIG. 5).
- the inter prediction parameter decoding control unit 3031 outputs the extracted vector index mvp_LX_idx to the AMVP prediction parameter derivation unit 3032.
- the inter prediction parameter decoding control unit 3031 outputs the extracted difference vector mvdLX to the addition unit 3035.
- FIG. 7 is a schematic diagram illustrating the configuration of the merge prediction parameter deriving unit 3036 according to the present embodiment.
- the merge prediction parameter derivation unit 3036 includes a merge candidate derivation unit 30361 and a merge candidate selection unit 30362.
- the merge candidate derivation unit 30361 includes a merge candidate storage unit 303611, an extended merge candidate derivation unit 303612, and a basic merge candidate derivation unit 303613.
- the merge candidate storage unit 303611 stores the merge candidates input from the extended merge candidate derivation unit 303612 and the basic merge candidate derivation unit 303613.
- the merge candidate includes a prediction list use flag predFlagLX, a vector mvLX, and a reference picture index refIdxLX.
- an index is assigned to the stored merge candidates according to a predetermined rule. For example, “0” is assigned as an index to the merge candidate input from the extended merge candidate derivation unit 303612.
- the extended merge candidate derivation unit 303612 includes a displacement vector acquisition unit 3036122, an interlayer merge candidate derivation unit 3036121, and an interlayer displacement merge candidate derivation unit 3036123.
- the displacement vector acquisition unit 3036122 first acquires displacement vectors in order from a plurality of candidate blocks adjacent to the decoding target block (for example, blocks adjacent to the left, upper, and upper right). Specifically, one of the candidate blocks is selected, and whether the selected candidate block vector is a displacement vector or a motion vector is determined by using a reference picture index refIdxLX of the candidate block as a reference layer determination unit 303111 (described later). ), If there is a displacement vector, it is set as the displacement vector. If there is no displacement vector in the candidate block, the next candidate block is scanned in order.
- the displacement vector acquisition unit 3036122 When there is no displacement vector in the adjacent block, the displacement vector acquisition unit 3036122 attempts to acquire the displacement vector of the block at the position corresponding to the target block of the block included in the reference picture in the temporally different display order. When the displacement vector cannot be acquired, the displacement vector acquisition unit 3036122 sets a zero vector as the displacement vector. The displacement vector acquisition unit 3036122 outputs the displacement vector to the inter-layer merge candidate derivation unit 3036121 and the inter-layer displacement merge candidate derivation unit.
- Interlayer merge candidate derivation unit 3036121 receives the displacement vector from displacement vector acquisition unit 3036122.
- the inter-layer merge candidate derivation unit 3036121 selects a block indicated only by the displacement vector input from the displacement vector acquisition unit 3036122 from a picture having the same POC as the decoding target picture of another layer (eg, base layer, base view).
- the prediction parameter which is a motion vector included in the block, is read from the prediction parameter memory 307. More specifically, the prediction parameter read by the inter-layer merge candidate derivation unit 3036121 is a prediction parameter of a block including coordinates obtained by adding a displacement vector to the coordinates of the starting point when the center point of the target block is the starting point. .
- the coordinates (xRef, yRef) of the reference block are the coordinates of the target block (xP, yP), the displacement vector (mvDisp [0], mvDisp [1]), and the width and height of the target block are nPSW, nPSH. Is derived by the following equation.
- xRef Clip3 (0, PicWidthInSamples L -1, xP + ((nPSW-1) >> 1) + ((mvDisp [0] +2) >> 2))
- yRef Clip3 (0, PicHeightInSamples L -1, yP + ((nPSH-1) >> 1) + ((mvDisp [1] +2) >> 2))
- the inter-layer merge candidate derivation unit 3036121 determines whether or not the prediction parameter is a motion vector in the determination method of a reference layer determination unit 303111 (described later) included in the inter-prediction parameter decoding control unit 3031 (not a displacement vector). The determination is made according to the determined method.
- the inter-layer merge candidate derivation unit 3036121 outputs the read prediction parameters as merge candidates to the merge candidate storage unit 303611. Moreover, when the prediction parameter cannot be derived, the inter layer merge candidate derivation unit 3036121 outputs that fact to the inter layer displacement merge candidate derivation unit.
- This merge candidate is a motion prediction inter-layer candidate (inter-view candidate) and is also referred to as an inter-layer merge candidate (motion prediction).
- Interlayer displacement merge candidate derivation unit 3036123 receives a displacement vector from displacement vector acquisition unit 3036122.
- the inter-layer displacement merge candidate derivation unit 3036123 merges the input displacement vector and the reference picture index refIdxLX of the previous layer image pointed to by the displacement vector (for example, the index of the base layer image having the same POC as the decoding target picture). Is output to the merge candidate storage unit 303611.
- This merge candidate is a displacement prediction inter-layer candidate (inter-view candidate) and is also referred to as an inter-layer merge candidate (displacement prediction).
- the basic merge candidate derivation unit 303613 includes a spatial merge candidate derivation unit 3036131, a temporal merge candidate derivation unit 3036132, a merge merge candidate derivation unit 3036133, and a zero merge candidate derivation unit 3036134.
- the spatial merge candidate derivation unit 3036131 reads the prediction parameters (prediction list use flag predFlagLX, vector mvLX, reference picture index refIdxLX) stored in the prediction parameter memory 307 according to a predetermined rule, and uses the read prediction parameters as merge candidates.
- the prediction parameter to be read is a prediction parameter relating to each of the blocks within a predetermined range from the decoding target block (for example, all or a part of the blocks in contact with the lower left end, upper left upper end, and upper right end of the decoding target block, respectively). is there.
- the derived merge candidates are stored in the merge candidate storage unit 303611.
- the temporal merge candidate derivation unit 3036132 reads the prediction parameter of the block in the reference image including the lower right coordinate of the decoding target block from the prediction parameter memory 307 and sets it as a merge candidate.
- the reference picture designation method may be, for example, the reference picture index refIdxLX designated in the slice header, or may be designated using the smallest reference picture index refIdxLX of the block adjacent to the decoding target block. .
- the derived merge candidates are stored in the merge candidate storage unit 303611.
- the merge merge candidate derivation unit 3036133 derives merge merge candidates by combining two different derived merge candidate vectors and reference picture indexes already derived and stored in the merge candidate storage unit 303611 as L0 and L1 vectors, respectively. To do.
- the derived merge candidates are stored in the merge candidate storage unit 303611.
- the zero merge candidate derivation unit 3036134 derives a merge candidate in which the reference picture index refIdxLX is 0 and both the X component and the Y component of the vector mvLX are 0.
- the derived merge candidates are stored in the merge candidate storage unit 303611.
- the merge candidate selection unit 30362 selects a merge candidate assigned with an index corresponding to the merge index merge_idx input from the inter prediction parameter decoding control unit 3031 among the merge candidates stored in the merge candidate storage unit 303611. As an inter prediction parameter.
- the merge candidate selection unit 30362 stores the selected merge candidate in the prediction parameter memory 307 (FIG. 5) and outputs it to the prediction image generation unit 308 (FIG. 5).
- FIG. 8 is a schematic diagram showing a configuration of the AMVP prediction parameter derivation unit 3032 according to the present embodiment.
- the AMVP prediction parameter derivation unit 3032 includes a vector candidate derivation unit 3033 and a prediction vector selection unit 3034.
- the vector candidate derivation unit 3033 reads out a vector (motion vector or displacement vector) stored in the prediction parameter memory 307 (FIG. 5) as a vector candidate mvpLX based on the reference picture index refIdx.
- the vector to be read is a vector related to each of the blocks within a predetermined range from the decoding target block (for example, all or a part of the blocks in contact with the lower left end, the upper left upper end, and the upper right end of the decoding target block, respectively).
- the prediction vector selection unit 3034 selects a vector candidate indicated by the vector index mvp_LX_idx input from the inter prediction parameter decoding control unit 3031 among the vector candidates read by the vector candidate derivation unit 3033 as the prediction vector mvpLX.
- the prediction vector selection unit 3034 outputs the selected prediction vector mvpLX to the addition unit 3035.
- FIG. 9 is a conceptual diagram showing an example of vector candidates.
- a predicted vector list 602 illustrated in FIG. 9 is a list including a plurality of vector candidates derived by the vector candidate deriving unit 3033.
- five rectangles arranged in a line on the left and right indicate areas indicating prediction vectors, respectively.
- the downward arrow directly below mvp_LX_idx, which is the second from the left end, and mvpLX below the mvp_LX_idx indicate that the vector index mvp_LX_idx is an index that refers to the vector mvpLX in the prediction parameter memory 307.
- the candidate vector is a block for which the decoding process has been completed, and is generated based on a vector related to the referenced block with reference to a block (for example, an adjacent block) in a predetermined range from the decoding target block.
- the adjacent block has a block that is spatially adjacent to the target block, for example, the left block and the upper block, and a block that is temporally adjacent to the target block, for example, the same position as the target block, and has a different display time. Contains blocks derived from blocks.
- the addition unit 3035 adds the prediction vector mvpLX input from the prediction vector selection unit 3034 and the difference vector mvdLX input from the inter prediction parameter decoding control unit to calculate a vector mvLX.
- the adding unit 3035 outputs the calculated vector mvLX to the predicted image generation unit 308 (FIG. 5). (Configuration of inter prediction parameter decoding control unit) Next, the configuration of the inter prediction parameter decoding control unit 3031 will be described. As illustrated in FIG.
- the inter prediction parameter decoding control unit 3031 includes an additional prediction flag decoding unit 30311, a merge index decoding unit 30312, a vector candidate index decoding unit 30313, and a split mode decoding unit, a merge flag decoding unit, not illustrated, An inter prediction flag decoding unit, a reference picture index decoding unit, and a vector difference decoding unit are configured.
- the partition mode decoding unit, the merge flag decoding unit, the merge index decoding unit, the inter prediction flag decoding unit, the reference picture index decoding unit, the vector candidate index decoding unit 30313, and the vector difference decoding unit are respectively divided mode part_mode, merge flag merge_flag, merge
- the index merge_idx, inter prediction flag inter_pred_idx, reference picture index refIdxLX, prediction vector index mvp_LX_idx, and difference vector mvdLX are decoded.
- the additional prediction flag decoding unit 30311 decodes a flag xpred_flag indicating whether or not additional prediction is performed.
- additional prediction means residual prediction or illuminance compensation, which will be described later, and indicates prediction that is additionally performed for normal motion compensation and displacement compensation.
- a flag indicating whether or not residual prediction is performed is expressed as res_pred_flag
- a flag indicating whether or not illumination compensation is performed is expressed as ic_enable_flag.
- the decoded additional prediction flag xpred_flag (res_pred_flag, ic_enable_flag) is output to the inter predicted image generation unit 309.
- the inter prediction parameter decoding control unit 3031 includes an internal displacement described later. Using the vector acquisition unit, the displacement vector mvDisp of the target PU is extracted and output to the inter predicted image generation unit 309. Note that a residual prediction weight res_pred_weight, which is a flag indicating a residual prediction weight, may be used instead of the residual prediction flag res_pred_flag which is a flag indicating whether to perform residual prediction.
- Residual prediction is not performed when res_pred_weight is 0, residual prediction is performed with weight 1 when res_pred_weight is 1, and residual prediction is performed with weight 1/2 when res_pred_weight is 2.
- a residual prediction mode res_pred_mode that is a flag indicating the type of residual prediction may be used.
- res_pred_mode When res_pred_mode is 0, residual prediction is not performed.
- res_pred_mode is 1, first residual prediction is performed.
- res_pred_mode is 2, residual prediction is performed using second residual prediction. . Note that the first residual prediction and the second residual prediction are different from each other in the method of deriving the residual.
- the additional prediction flag decoding unit 30311 includes an additional prediction flag determination unit 30314 inside.
- the additional prediction flag determination unit 30314 determines whether or not the additional prediction flag xpred_flag is included in the encoded data (whether or not it is read out from the encoded data and decoded). The determination result is derived as xpred_flag_exists with 1 being included in the encoded data and 0 being not included.
- the additional prediction flag decoding unit 30311 causes the entropy decoding unit 301 to The decoding of the additional prediction flag is notified, and the syntax element corresponding to the additional prediction flag is extracted from the encoded data through the entropy decoding unit 301.
- the additional prediction flag determination unit 30314 determines that it is not included in the encoded data (when xpred_flag_exists is 0), a value indicating the additional prediction (here, 1) is derived (infer). )
- the additional prediction flag determination unit 30314 will be described later.
- the displacement vector acquisition unit When the block adjacent to the target PU has a displacement vector, the displacement vector acquisition unit extracts the displacement vector from the prediction parameter memory 307, refers to the prediction parameter memory 307, and predicts the prediction flag of the block adjacent to the target PU. Read predFlagLX, reference picture index refIdxLX and vector mvLX.
- the displacement vector acquisition unit includes a reference layer determination unit 303111 therein. The displacement vector acquisition unit sequentially reads prediction parameters of blocks adjacent to the target PU, and determines whether the adjacent block has a displacement vector from the reference picture index of the adjacent block using the reference layer determination unit 303111. If the adjacent block has a displacement vector, the displacement vector is output. If there is no displacement vector in the prediction parameter of the adjacent block, the zero vector is output as the displacement vector.
- the reference layer determination unit 303111 Based on the input reference picture index refIdxLX, the reference layer determination unit 303111 determines reference layer information reference_layer_info indicating the relationship between the reference picture indicated by the reference picture index refIdxLX and the target picture.
- the reference layer information reference_layer_info is information indicating whether the vector mvLX to the reference picture is a displacement vector or a motion vector.
- Prediction when the target picture layer and the reference picture layer are the same layer is called the same layer prediction, and the vector obtained in this case is a motion vector.
- Prediction when the target picture layer and the reference picture layer are different layers is called inter-layer prediction, and the vector obtained in this case is a displacement vector.
- the reference layer determination unit 303111 may use any one of the first determination method to the third determination method, or any combination of these methods.
- the reference layer determination unit 303111 displaces the vector mvLX. Judged to be a vector.
- the POC is a number indicating the order in which pictures are displayed, and is an integer (discrete time) indicating the display time when the pictures are acquired.
- the reference layer determination unit 303111 determines that the vector mvLX is a motion vector.
- the reference layer determination unit 303111 determines that the vector mvLX is a displacement vector, for example, using the following equation: To do.
- POC is the POC of the picture to be decoded
- RefPOC (X, Y) is the POC of the reference picture specified by the reference picture index X and the reference picture list Y.
- a reference picture with a POC equal to the POC of the picture to be decoded can be referred to means that the layer of the reference picture is different from the layer of the picture to be decoded. Therefore, when the POC of the decoding target picture is equal to the POC of the reference picture, it is determined that inter-layer prediction has been performed (displacement vector), and otherwise the same-layer prediction has been performed (motion vector).
- the reference layer determination unit 303111 may determine that the vector mvLX is a displacement vector when the viewpoint related to the reference picture indicated by the reference picture index refIdxLX is different from the viewpoint related to the decoding target picture. Specifically, when the view ID view_id of the reference picture indicated by the reference picture index refIdxLX is different from the view ID view_id of the decoding target picture, the reference layer determination unit 303111 determines that the vector mvLX is a displacement vector, for example, using the following equation: To do.
- ViewID is the view ID of the decoding target picture
- RefViewID (X, Y) is the view ID of the reference picture specified by the reference picture index X and the reference picture list Y.
- the view ID view_id is information for identifying each viewpoint image.
- the difference vector dvdLX related to the displacement vector is obtained between pictures of different viewpoints and cannot be obtained between pictures of the same viewpoint. If it is not determined as a displacement vector, the reference layer determination unit 303111 determines that the vector mvLX is a motion vector.
- the reference layer determination unit 303111 uses the vector mvLX as a displacement vector (inter-layer prediction is performed), and otherwise. Is determined as a motion vector (the same layer prediction has been performed).
- the reference layer determination unit 303111 determines that the vector mvLX is a displacement vector when the layer IDlayer_id related to the reference picture indicated by the reference picture index refIdxLX is different from the layer IDlayer_id related to the decoding target picture, for example, using the following equation: May be.
- layerID! RelayerID (refIdxLX, ListX)
- layerID is the layer ID of the picture to be decoded
- RelayerID (X, Y) is the layer ID of the reference picture specified by the reference picture index X and reference picture list Y.
- the layer IDlayer_id is data for identifying each layer when one picture includes data of a plurality of layers (layers).
- the layer ID is based on having different values depending on the viewpoint. That is, the difference vector dvdLX related to the displacement vector is a vector obtained between the target picture and a picture related to a different layer. If it is not determined as a displacement vector, the reference layer determination unit 303111 determines that the vector mvLX is a motion vector.
- the reference layer determination unit 303111 determines that the vector mvLX is a displacement vector (inter-layer prediction is performed), and otherwise is a motion vector (the same layer prediction is performed).
- FIG. 11 is a schematic diagram illustrating a configuration of the inter predicted image generation unit 309 according to the present embodiment.
- the inter prediction image generation unit 309 includes a motion displacement compensation unit 3091, a residual prediction unit 3092, an illuminance compensation unit 3093, and a weight prediction unit 3094.
- the motion displacement compensation unit 3091 is designated by the reference picture index refIdxLX from the reference picture memory 306 based on the prediction list use flag predFlagLX, the reference picture index refIdxLX, and the motion vector mvLX input from the inter prediction parameter decoding unit 303.
- a motion displacement compensation image is generated by reading out a block at a position shifted by the vector mvLX starting from the position of the target block of the reference picture.
- a motion displacement compensation image is generated by applying a filter for generating a pixel at a decimal position called a motion compensation filter (or displacement compensation filter).
- the above processing is called motion compensation
- the vector mvLX is a displacement vector
- it is called displacement compensation
- it is collectively referred to as motion displacement compensation
- the L0 predicted motion displacement compensation image is referred to as predSamplesL0
- the L1 predicted motion displacement compensation image is referred to as predSamplesL1.
- predSamplesLX When both are not distinguished, they are called predSamplesLX.
- These output images are also referred to as motion displacement compensation images predSamplesLX.
- the input image is expressed as predSamplesLX
- the output image is expressed as predSamplesLX ′.
- the residual prediction unit 3092 performs residual prediction on the input motion displacement compensation image predSamplesLX.
- the residual prediction flag res_pred_flag is 0, the input motion displacement compensation image predSamplesLX is output as it is.
- residual prediction is performed on the motion displacement compensation image predSamplesLX obtained by the motion displacement compensation unit 3091. I do.
- Residual prediction is a motion displacement compensation image that is an image obtained by predicting a residual of a reference layer (first layer image) different from a target layer (second layer image) that is a target of predicted image generation. This is done by adding to predSamplesLX. That is, assuming that the same residual as that of the reference layer also occurs in the target layer, the already derived residual of the reference layer is used as an estimated value of the residual of the target layer. In the base layer (base view), only the image of the same layer becomes the reference image. Therefore, when the reference layer (first layer image) is a base layer (base view), the predicted image of the reference layer is a predicted image by motion compensation, and thus depends on the target layer (second layer image). Also in prediction, residual prediction is effective in the case of a predicted image by motion compensation. That is, the residual prediction has a characteristic that it is effective when the target block is motion compensation.
- the residual prediction unit 3092 includes a residual acquisition unit 30921 (not shown) and a residual filter unit 30922.
- FIG. 12 is a diagram for explaining residual prediction.
- the corresponding block corresponding to the target block on the target layer is a block whose position is shifted by a displacement vector mvDisp, which is a vector indicating the positional relationship between the reference layer and the target layer, starting from the position of the target block of the image on the reference layer. Located in. Therefore, the residual at the position shifted by the displacement vector mvDisp is used as the residual used for residual prediction.
- the residual acquisition unit 30921 derives a pixel at a position where the coordinates (x, y) of the pixel of the target block are shifted by the integer pixel component of the displacement vector mvDisp of the target block. Considering that the displacement vector mvDisp has decimal precision, the residual acquisition unit 30921 is adjacent to the X coordinate xR0 of the pixel R0 corresponding to the pixel coordinate of the target block (xP, yP) and the pixel R0.
- the X coordinate xR1 of the pixel R1 is derived by the following equation.
- xR0 Clip3 (0, PicWidthInSamples L -1, xP + x + (mvDisp [0] >> 2))
- xR1 Clip3 (0, PicWidthInSamples L -1, xP + x + (mvDisp [0] >> 2) +1)
- Clip3 (x, y, z) is a function that limits (clips) z to be greater than or equal to x and less than or equal to y.
- mvDisp [0] >> 2 is an expression for deriving an integer component in a 1/4 pel precision vector.
- the residual acquisition unit 30921 determines the weighting factor w0 of the pixel R0 according to the decimal pixel position (mvDisp [0]-((mvDisp [0] >> 2) ⁇ 2)) specified by the displacement vector mvDisp. Then, the weighting factor w1 of the pixel R1 is derived by the following equation.
- the residual acquisition unit 30921 acquires the residuals of the pixel R0 and the pixel R1 from the residual storage unit 313 using refResSamples L [xR0, y] and refResSamples L [xR1, y].
- the residual filter unit 30922 derives the estimated residual deltaL using the following equation.
- the residual acquisition unit 30921 may acquire only the pixel xR0 as the pixel corresponding to the pixel of the target block, and derive the estimated residual deltaL using the following equation.
- the residual filter unit 30922 adds the estimated residual deltaL to the motion displacement image predSamplesLX input to the residual prediction unit 3092 and outputs it as a motion displacement image predSamplesLX ′.
- predSamplesLX ′ [x, y] predSamplesLX [x, y] + delta L
- bit width of the residual is obtained when the number of bits of the pixel is BitDepthY.
- BitDepthY can be limited to BitDepthY.
- a memory generally referred to as a RAM (SRAM, DRAM, DDRAM) stores information in units of 8 bits.
- the range of residuals to be stored when the pixel bit width is 8 bits, which is the most frequently used case.
- reading with a limited residual range can reduce the bandwidth required for performing memory transfer when reading from the residual storage unit 313, and also contributes to an improvement in reading speed. .
- the residual range restriction may be performed not at the time of residual reading by the residual acquisition unit 30921 but at the time of storing the residual by the residual storage unit 313.
- the residual prediction unit 3092A includes a residual acquisition unit 30921A and a residual filter unit 30922.
- the residual prediction unit 3092A includes a residual acquisition unit 30921A and a residual filter unit 30922.
- the residual acquisition unit 30921A of the modification reads out the residual of the reference layer, the residual acquisition unit 30921A refers only to a pixel at a position where the resolution in the horizontal direction and / or the vertical direction is thinned by N (where N is a predetermined value) Magnification).
- the coordinates for reading out the residual are shifted to the right by a predetermined bit (here, K), and further left-shifted by the same predetermined bit K, thereby ignoring the lower K bits.
- the residual of the position where the lower bits are ignored is not read.
- the residual prediction unit 3092A derives the coordinates xR0 and xR1 by the above shift operation ignoring the lower K bits of the coordinates, the coordinates xx before the lower bits are ignored, and the lower K bits after the lower K bits are ignored.
- Weight coefficients w0 and w1 may be derived from the coordinates xxx, and the estimated residual deltaL may be obtained from the following equation by linear prediction.
- the residual prediction unit 3092A may derive the coordinate xR0 by the above shift operation ignoring the lower K bits of the coordinate, and obtain the estimated residual deltaL from the following equation.
- the residual prediction unit 3092B of the modified example derives a pixel by linear interpolation when the displacement vector mvDisp has decimal precision for the luminance component, and uses a neighboring integer pixel without using linear interpolation for the color difference component.
- the displacement vector mvDisp has not only the horizontal component mvDisp [0] but also the vertical component mvDisp [1].
- FIG. 67 is a diagram illustrating a configuration of the residual prediction unit 3092B.
- the residual prediction unit 3092B includes a residual acquisition unit 30921B and a residual filter unit 30922B.
- the residual acquisition unit 30921B includes a displacement derivation unit 309221B, a luminance residual acquisition unit 309212B, and a color difference residual acquisition unit 309213B.
- the residual filter unit 30922B includes a luminance residual interpolation unit 309221B, a luminance residual addition unit 309222B, and a color difference residual addition unit 309224B.
- the luminance residual interpolation unit 309221B derives the horizontal weighting factors w0 and w1 and the vertical weighting factors w2 and w3 of the luminance components based on the decimal precision of the displacement vector mvDisp.
- the luminance residual interpolation unit 309221B derives a prediction residual delta by linear interpolation in the horizontal and vertical directions according to the following formula.
- refResSample [] is a residual stored in the residual storage unit 313, and is acquired by the luminance residual acquisition unit 309212B.
- xR0, xR1, yR0, and yR1 indicate the coordinates of the reference destination, and are derived by the following expression based on the integer component of the displacement vector mvDisp.
- xR0 Clip3 (0, PicWidthInSampleL-1, xP + x + (mvDisp [0] >> 2))
- xR1 Clip3 (0, PicWidthInSampleL-1, xR0 + 1)
- yR0 Clip3 (0, PicHeightInSampleL-1, yP + y + (mvDisp [1] >> 2))
- yR1 Clip3 (0, PicHeightInSampleL-1, yR0 + 1)
- the luminance residual adding unit 309222B is a prediction image predSampleLX before residual prediction.
- the derived prediction residual delta is added to [] to obtain a prediction image predSampleLX ′ [] after the residual prediction.
- deltaC refResSampleC [xRC0, yRC0]
- xRC0, yRC0 are coordinates derived by the following expression.
- predSampleLX ⁇ [x, y] predSampleLX [x, y] + deltaC
- FIG. 68 is a flowchart for explaining the operation of the residual prediction unit 3092B.
- S4002 Start of loop for pixels in prediction block. If the prediction block is an nW ⁇ nH block, the loop is repeated nW ⁇ nH times.
- S4003 It is determined whether the prediction block is a luminance component or a color difference component. If it is a luminance component, the process proceeds to S4004. If it is a color difference component, the process proceeds to S4005.
- the luminance residual acquisition unit 309212B acquires a plurality of luminance residuals.
- the color difference residual acquisition unit 309213B acquires one color difference residual and derives a prediction residual.
- FIG. 69 is a diagram illustrating a configuration of the residual prediction unit 3092C.
- the residual prediction unit 3092C includes a residual acquisition unit 30921C and a residual filter unit 30922C.
- the residual acquisition unit 30921C includes a displacement derivation unit 309221C, a luminance residual acquisition unit 309212C, and a color difference residual acquisition unit 309213C.
- the residual filter unit 30922C includes a luminance residual interpolation unit 309221C, a luminance residual addition unit 309222C, and a color difference residual addition unit 309224C.
- the displacement deriving unit 309212C refers to the vector of the block adjacent to the target block, derives the displacement vector mvDisp, and outputs it to the luminance residual acquisition unit 309212C, the chrominance residual acquisition unit 309213C, and the luminance residual interpolation unit 309221C.
- the luminance residual interpolation unit 309221C derives the horizontal weighting factors w0 and w1 and the vertical weighting factors w2 and w3 of the luminance components based on the decimal precision of the displacement vector mvDisp.
- the luminance residual interpolation unit 309221C derives a prediction residual delta by linear interpolation in the horizontal direction and the vertical direction according to the following formula.
- the luminance residual acquisition unit 309212C refers to the residual from the residual storage unit 313, the luminance residual acquisition unit 309212C limits (clips) the residual value range using the following equation.
- KY is a constant and is assumed to be any one of 1, 2, 3, and 4.
- cmin -(1 ⁇ (bitDepthC -KC))
- cmax 1 ⁇ (bitDepthC -KC)
- KC is an integer that satisfies KC> KY.
- FIG. 70 is a flowchart for explaining the operation of the residual prediction unit 3092C.
- the color difference residual acquisition unit 309212C derives a clip range of the color difference residual.
- the color difference residual acquisition unit 309212C refers to the residual of the color difference from the residual storage unit 313 by limiting to the derived clip range.
- a prediction residual is derived from the referenced residual.
- S4108 The luminance residual adder 309222C or the chrominance residual adder 309224C adds the prediction residual derived in S4105 or S4107 to the predicted image.
- the displacement deriving unit 309211D refers to the vector of the block adjacent to the target block, derives the displacement vector mvDisp, and outputs it to the luminance residual acquisition unit 309212D and the luminance residual interpolation unit 309221D.
- the luminance residual interpolation unit 309221D derives the horizontal weighting factors w0 and w1 and the vertical weighting factors w2 and w3 of the luminance components based on the decimal precision of the displacement vector mvDisp.
- the luminance residual interpolation unit 309221D derives a prediction residual delta by linear interpolation in the horizontal and vertical directions according to the following formula.
- KY is a constant and is assumed to be any one of 1, 2, 3, and 4.
- the luminance residual adding unit 309222D adds the prediction residual delta to the prediction image predSampleLX [] before the residual prediction, and acquires the prediction image predSampleLX ′ [] after the residual prediction.
- predSampleLX ⁇ [x, y] predSampleLX [x, y] + delta Unlike the luminance, the chrominance component does not perform residual prediction.
- FIG. 72 is a flowchart for explaining the operation of the residual prediction unit 3092D.
- S4201 Displacement vector mvDisp is derived in the displacement deriving unit 309212D.
- the prediction residual is derived from the residual storage unit 313 by referring to the luminance residual.
- the luminance residual adding unit 309222C adds the prediction residual derived in S4103 to the prediction image.
- the memory size for storing the residual of the color difference component in the derivation of the prediction residual There is an effect of omitting.
- the illumination compensation unit 3093 performs illumination compensation on the input motion displacement compensation image predSamplesLX.
- the input motion displacement compensation image predSamplesLX is output as it is.
- the motion displacement compensation image predSamplesLX input to the illuminance compensation unit 3093 is an output image of the motion displacement compensation unit 3091 when the residual prediction is off, and the residual prediction unit when the residual prediction is on. 3092 is an output image.
- Illuminance compensation is a process in which a pixel value of a motion displacement image in an adjacent region adjacent to a target block for which a predicted image is to be generated, a change in a decoded image in the adjacent region, and a pixel value in the target block and an original image of the target block. This is done on the assumption that it is similar to a change.
- the illuminance parameter estimation unit 30931 obtains an estimation parameter for estimating the pixel of the target block (target prediction unit) from the pixel of the reference block.
- FIG. 13 is a diagram for explaining illumination compensation.
- FIG. 13 shows the positions of the pixels L around the target block and the pixels C around the reference block on the reference layer image at a position shifted from the target block by the displacement vector.
- ⁇ is a function that takes the sum of i. i is a variable from 0 to N-1.
- the illuminance compensation filter 30932 included in the illuminance compensation unit 3093 uses the estimation parameter derived by the illuminance parameter estimation unit 30931 to derive a pixel that compensates for illuminance change from the target pixel.
- the estimation parameters are decimal numbers a and b, the following equation is used.
- predSamples [x] [y] Clip3 (0, (1 ⁇ bitDepth) -1, 1, ((((predSamplesL0 [x] [y] + offset1) >> shift1) * ic0)> icica0) ic.
- an illuminance compensation unit 3093B which is a modification of the illuminance compensation unit 3093, will be described.
- FIG. 73 is a block diagram showing a configuration of the illuminance compensation unit 3093B.
- the illuminance compensation unit 3093 includes an illuminance compensation unit 3093B including an illuminance parameter estimation unit 30931B and an illuminance compensation filter unit 30932B.
- the illuminance parameter estimation unit 30931B includes an integrated shift value deriving unit 3093111B, an integrated value deriving unit 3093112B, an added value deriving unit 309313B, a first parameter deriving unit 309314B, a second parameter deriving unit 309315B, a parameter a deriving unit 309316B, and a parameter b deriving unit. 309317B.
- precShift Max (0, bitDepth-12) Formula (B-1)
- the derived integrated shift value precShift is output to the integrated value deriving unit 309912B, the first parameter deriving unit 309314B, and the second parameter deriving unit 309315B.
- the addition value deriving unit 309313B derives the sum Y of the pixel values y of the decoded image and the sum X of the pixel values x of the reference image by the following equations (B-2) and (B-3).
- the integrated value deriving unit 309312B obtains the sum XY of the product of the pixel value y of the decoded image and the pixel value x of the reference image and the sum XX of the square of the pixel value of the reference image by the following equations (B-4) to (B Derived by -5). At this time, the integration value deriving unit 309312B performs integration when deriving the sum XY of the product of the pixel value y of the decoded image and the pixel value x of the reference image and deriving the sum XX of the square of the pixel value x of the reference image. Add after shifting right by the shift value precShift. X, Y, XY, and XX are initialized to 0 before the following sum.
- ⁇ ⁇ x [i] Formula (B-2)
- Y ⁇ y [i] Formula (B-3)
- XX + ⁇ (x [i] * x [i]) >> precShift formula (B-4)
- XY + ⁇ (y [i] * y [i]) >> precShift formula (B-5)
- ⁇ is a sum with respect to the reference region, and a sum with respect to an index i specifying a pixel in the reference region is derived.
- y [i] is the pixel value at index i of the decoded image.
- x [i] is a pixel value at index i of the reference image.
- the count shift value iCountShift is a logarithm of 2 of the size (number of pixels) of the reference area.
- the number of bits necessary for the calculation is a logarithm of 2 of the size of the reference area (the maximum value of the count shift iCountShift) twice the bit depth bitDepth of the pixel.
- the block size has a maximum value of 64
- the maximum value of the size of the reference area is 128.
- the maximum value of the count shift iCountShift is 7 from the logarithm of 2 of 128. Therefore, the required number of bits is bitDepth * 2 + 7.
- bitDepth * 2 + 7 ⁇ 32
- BitDepth ⁇ 12. That is, if bitDepth is 12 or less, it does not exceed 32 bits. Conversely, if bitDepth exceeds 12, it exceeds the 32-bit range.
- Formula (B-1) is obtained from this result.
- bitDepth exceeds 12 bitDepth-12 corresponding to the excess is derived as the integrated shift value precShift.
- the shift is performed by the integrated shift value precShift in advance and the addition is performed, so that it is possible to prevent the range of 32 bits from being exceeded.
- the first parameter derivation unit 309314B calculates the sum XY of the product of the pixel value y of the decoded image and the pixel value x of the reference image, and the difference of the product of the sum Y of the pixel value of the decoded image and the sum X of the pixel value of the reference image.
- the first parameter a1 is derived from the following equation.
- the second parameter deriving unit 309315B derives the second parameter a2 from the difference between the square of the square XX of the pixel values of the reference image and the square of the sum X of the pixel values of the reference image by the following equation.
- FIG. 74 is a block diagram showing the configuration of the parameter a deriving unit 309316B.
- the parameter a derivation unit 309316B includes a first parameter clip unit 3093161B, a first parameter shift unit 3093162B, a second parameter shift unit 3093163B, and a table base parameter a derivation unit 3093164B.
- the first parameter clip unit 3093161B limits the first parameter a1 according to the size of the second parameter a2. For example, as shown in the following expression, a1 is clipped to 0 or more and 2 or less of a2.
- a1 Clip3 (0, 2 * a2, a1) Formula (B-12)
- the first parameter shift unit 3093162B derives the first normalized shift value iScaleShiftA1 according to the following equation according to the magnitude of the first parameter a1.
- the derived first normalized shift value iScaleShiftA1 is output to the table base parameter a derivation unit 3093164B.
- iScaleShiftA2 Max (0, GetMSB (abs (a2))-6) Formula (B-14)
- the first parameter shift unit 3093162B and the second parameter shift unit 3093163B right-shift the first parameter a1 by the first normalized shift value iScaleShiftA1, the second parameter a2 by the second normalized shift value iScaleShiftA2, and the normalized first parameter a1s and a normalized second parameter a2s are derived.
- a1s a1 >> iScaleShiftA1 formula (B-15)
- a2s a2 >> iScaleShiftA2 formula (B-16)
- the table-based parameter a derivation unit 3093164B derives the parameter a shift value iScaleShiftA using the following equation.
- ScaleShiftA iScaleShiftA2-iScaleShiftA1 + 15-iShift formula (B-18)
- the table base parameter a derivation unit 3093164B refers to the reciprocal table value invTable determined according to the normalized second parameter a2s, takes the product with the normalized first parameter a1s, and shifts to the right by the table shift value (ScaleShiftA).
- the parameter a is derived from the following equation.
- the value of the parameter a is the ratio of the first parameter a1 and the second parameter a2 (corresponding to a value obtained by shifting a1 / a2 to the left by iShift).
- a parameter a clip unit may be provided instead of the first parameter clip unit 3093161B, and the range of the parameter a may be clipped to 0 or more and 255 or less, which is an 8-bit non-negative variable, by the following calculation.
- the derived parameter a is output to the parameter b deriving unit 309317B and the illuminance compensation filter unit 30932B.
- the parameter b deriving unit 309317B subtracts a value obtained by subtracting a value right shifted by a fixed shift value iShift from the sum X of pixel values of the decoded image by applying the parameter a to the sum X of pixel values of the reference image.
- the parameter b is derived by the following equation.
- b (Y-((a * X) >> iShift) + (1 ⁇ (iCountShift-1))) >> iCountShift expression (B-20) Note that the right shift of iCountShift corresponds to dividing by the number of pixels in the reference area.
- the bit depth of the pixel is 8 bits
- the range of the pixel value x is an 8-bit non-negative variable
- the range of the parameter a is also an 8-bit non-negative variable. Therefore, the 8-bit non-negative variable which is the minimum number of bits in software. It can be calculated by calculation between (unsigned char in C language). For example, in SIMD calculation using a 128-bit register, 16 8-bit non-negative variables can be simultaneously stored in the register and operated. That is, since 16 pixels can be processed simultaneously, there is an effect of speeding up.
- the parameter b deriving unit 309317B ′ which is another configuration of the parameter b deriving unit 309317B
- another configuration of the illuminance compensation filter unit 30932B is used instead of the illuminance compensation filter unit 30932B.
- the illuminance compensation filter unit 30932B ′ is used.
- the illuminance compensation filter unit 30932B ′ which is another configuration of the illuminance compensation filter unit 30932B, derives the predicted image predSamples ′ [] after illuminance compensation from the predicted image predSamples [] before illuminance compensation by the following equation.
- predSamples ⁇ [x] [y] ((a * predSamples [x] [y] + b) >> iShift) formula (B-21 ′)
- the illuminance parameter estimation unit 30931B defines the reciprocal table invTable [x] so that it becomes 0 when the index x is 0, and the expressions (B-19) and (B-19 ′) ),
- the sum XX of values obtained by shifting the square of the pixel value of the reference image to the right by the above integrated shift value and the sum of the pixel value of the reference image are defined in the reciprocal table invTable [x] defined as described above.
- the normalized second parameter By deriving the parameter a based on the value subtracted by the second parameter (normalized second parameter) derived from the value obtained by shifting the square of X to the right by the integrated shift value, the normalized second parameter (normalized) Since the appropriate parameter a can be obtained without changing the calculation method depending on whether or not the second parameter) is 0, the effect of reducing the processing amount can be obtained.
- the index x is other than 0, it is appropriate to use a value obtained by dividing a predetermined value by x as an integer for the reciprocal table invTable [x].
- the illuminance parameter estimation unit 30931B performs integration shift according to the pixel bit depth as shown in (B-1), (B-4), (B-5), (B-7), and (B-8).
- the value precShift is derived, and the sum XY of the value obtained by shifting the product of the pixel value of the decoded image and the pixel value of the reference image to the right by the integrated shift value precShift, the sum X of the pixel value of the reference image, and the pixel value of the decoded image
- a first parameter a1 derived from a value obtained by shifting the product of the sum Y to the right by the integrated shift value, a sum XX of values obtained by shifting the square of the pixel value of the reference image to the right by the integrated shift value, and the reference image
- the parameter a is derived from the second parameter a2 derived from the value obtained by shifting the square of the sum X of the pixel values to the right by the integrated shift value.
- the illuminance parameter estimation unit 30931B when deriving XY and XX, which are the sums of pixel products, before taking the sum related to the pixel products, the pixel product products are shifted to the right by the integration shift value determined according to the pixel bit depth. By shifting, it is possible to derive the first parameter and the second parameter within a predetermined range, for example, a range of 32 bits.
- the illuminance parameter estimation unit 30931B uses the first parameter deriving unit 309314B and the second parameter deriving unit 309315B to obtain a pixel bit depth of 2
- the first parameter a1 and the second parameter a2 are shifted right by a predetermined fixed parameter shift value, Normalize.
- the first parameter a1 and the second parameter a2 are expressed by the number of bits N or less. For example, when calculating with 32-bit precision, when the number less than 2 to the 32-N power is applied. Can also ensure that the 32-bit range is not exceeded.
- the shift is a right shift of the fixed shift value, there is an effect that the shift calculation becomes easy.
- the illuminance compensation filter unit 30932B shifts right using a predetermined fixed shift constant iShift, which is a fixed value, as shown in equations (B-21) and (B-21 ′). Compared to the case of shifting to the right, there is an effect that the processing by SIMD calculation or the like becomes easier.
- the illuminance compensation filter unit 30932B ′ has a parameter b that is an offset component with respect to a product of a parameter a that is a slope component and a pixel value predSamples [x] [y], as shown in an equation (B-21 ′).
- the parameter a and the pixel of the decoded image are obtained from the value obtained by shifting the sum Y of the pixel values of the reference image to the left by the fixed shift value iShift. It is preferable to derive the parameter b based on a value obtained by subtracting the product of the sum X of values.
- the illuminance parameter estimation unit 30931C includes an integrated shift value deriving unit 3093111B, an integrated value deriving unit 3093112B, an added value deriving unit 309313B, a first parameter deriving unit 309314C, a second parameter deriving unit 309315B, a parameter a deriving unit 309316B, and a parameter b deriving unit. 309317B. Since the components other than the first parameter deriving unit 309314C have already been described, description thereof will be omitted.
- FIG. 75 is a block diagram showing a configuration of the parameter a deriving unit 309316C.
- the parameter a derivation unit 309316C includes a first parameter clip unit 3093161C, a common shift unit 3093162C, and a table base parameter a derivation unit 3093164C.
- a1 Clip3 (a2, a2 * 18/16, a1) Formula (B-12)
- the common shift unit 3093162C derives the common normalized shift value iScaleShiftA2 by the following formula according to the magnitude of the second parameter a2.
- iScaleShiftA2 Max (0, GetMSB (abs (a2))-6) Formula (B-14 ')
- the common shift unit 3093162C right-shifts the first parameter a1 and the second parameter a2 by the same common normalized shift value iScaleShiftA2, and derives a normalized first parameter a1s and a normalized second parameter a2s.
- the table base parameter a derivation unit 3093164C refers to the reciprocal table value invTable determined according to the normalized second parameter a2s, calculates the product with the normalized first parameter a1s, and rightward with the table shift value (15-iShift in this case) By shifting, the parameter a is derived by the following equation.
- a common normalization determined according to the magnitude of the second parameter a2.
- the shift value iScaleShiftA2 is derived, and the first normalized parameter a1s and the normalized second parameter a2s are derived by right shifting the first parameter a1 and the second parameter a2 by the common normalized shift value iScaleShiftA2.
- the parameter a is derived by shifting the product to the right by a fixed shift value.
- both the first parameter and the second parameter are normalized by using the same normalized shift value, so that the first parameter shift unit 3093162B, the second parameter shift unit Compared to the case where different normalization parameters are used for the first parameter and the second parameter described in 3093163B, there is an effect that the processing becomes easier.
- the table shift value after applying the table value can be set to a fixed value, and the parameter a is derived by the table base parameter a deriving unit 3093164C. The effect of facilitating the right shift process at the time is provided.
- the illuminance compensation unit 3093D which is a modification of the illuminance compensation unit 3093, will be described.
- the illuminance compensation unit 3093D according to the modification includes an illuminance parameter estimation unit 30931D and an illuminance compensation filter unit 30932B. Since the illuminance compensation filter unit 30932B has already been described, description thereof is omitted.
- FIG. 76 is a block diagram showing the configuration of the parameter a deriving unit 309316D.
- the parameter a derivation unit 309316D includes a parameter comparison unit 3093164D.
- FIG. 77 is a block diagram showing a configuration of the illuminance compensation unit 3093E.
- the illuminance compensation unit 3093 includes an illuminance parameter estimation unit 30931E and an illuminance compensation filter unit 30932B.
- the illuminance parameter estimation unit 30931E includes an integrated shift value deriving unit 3093111B, an integrated value deriving unit 3093112B, an added value deriving unit 309313B, a first parameter deriving unit 309314B, a second parameter deriving unit 309315B, a parameter a deriving unit 309316B, and a parameter b deriving unit.
- 309317B and a regularization term addition unit 309318E is a regularization term addition unit 309318E.
- a parameter a derivation unit 309316B a parameter a derivation unit 309316C and a parameter a derivation unit 309316D may be used.
- the method for deriving the parameter a and the parameter b is not limited to the above description.
- FIG. 78 is a block diagram showing a configuration of the regularization term addition unit 309318E.
- the regularization term addition unit 309318E includes a regularization term derivation unit 3093180E, a first parameter regularization term addition unit 3093181E, and a second parameter regularization term addition unit 3093182E.
- the second parameter regularization term addition unit 3093182E adds the regularization term to a parameter (for example, XX) used for derivation of the second parameter.
- XX XX + acost formula (E-3)
- the addition of the regularization term may be performed by the first parameter deriving unit 309314B and the second parameter deriving unit 309315B.
- the first parameter and the second parameter are derived by the following equations instead of the equations (B-7) and (B-8).
- Parameter a ( ⁇ xiyi ⁇ xi ⁇ yi + ⁇ 1) / ( ⁇ xixi ⁇ xi ⁇ xi + ⁇ 1) Equation (E-6 ′′)
- ⁇ xiyi ⁇ xi ⁇ yi of the numerator corresponds to the first parameter
- ⁇ xixi ⁇ xi ⁇ xi of the denominator corresponds to the second parameter. Therefore, by adding the same regularization term ⁇ 1 to the first parameter and the second parameter, an effect of bringing the parameter a closer to 1 can be obtained. Since the effect of the regularization term is proportional to the square of a-1, the strength increases as a goes far from 1. When a is close to 1, the regularization term has almost no effect.
- FIG. 79 is a block diagram showing a configuration of the illuminance compensation unit 3093F.
- the illuminance compensation unit 3093 includes an illuminance parameter estimation unit 30931E and an illuminance compensation filter unit 30932F. Since the illuminance parameter estimation unit 30931E has already been described, the description thereof is omitted. Moreover, it is not limited to the illumination parameter estimation part 30931E, The illumination parameter estimation part using another estimation method may be sufficient.
- a predicted image predSamples ′ [] after illuminance compensation is derived from the predicted image predSamples] [] before illuminance compensation by the following equation.
- predSamplesL0 ⁇ [x] [y] ((a * predSamples [x] [y]) >> iShift) + b
- the weight prediction unit 3094 described later uses the L0 predicted image to which the illuminance prediction is applied, predSamplesL0 ′ [x] [y], and the L1 predicted image to which the illuminance prediction is not applied predSamplesL1 [x] [y].
- a predicted image is generated by the following expression.
- predSamples ⁇ [x] [y] (predSamplesL0 ⁇ [x] [y] + predSamplesL1 [x] [y] + offset2) >> shift2)
- a predicted image predSamples ′ [] after illuminance compensation is derived from the predicted image predSamples [] before illuminance compensation by the following equation.
- predSamplesL0 ⁇ [x] [y] (a * predSamples L0 [x] [y] >> iShift) + b
- predFlagL0 0 and predFlagL1 is 1
- the predicted image predSamples ′ [] after illuminance compensation is derived from the predicted image predSamples [] before illuminance compensation by the following equation.
- predSamples ⁇ [x] [y] ((a * predSamples [x] [y]) >> iShift) + b It should be noted that the prediction image predSamplesL1 [x] [y] of L1 can be explicitly expressed as follows.
- predSamples [x] [y] (predSamplesL0 [x] [y] + predSamplesL1 [x] [y] + offset2) >> shift2
- effect F5b an effect that avoids a situation where the processing amount is large such that illuminance prediction is performed on two reference images.
- Illuminance compensation unit 3093G an illuminance compensation unit 3093G which is a modification of the illuminance compensation unit 3093 will be described. Similar to the illuminance compensation unit 3093F, the illuminance compensation unit 3093G performs L0 restriction, but differs from the illuminance compensation unit 3093F in that the prediction formula for illuminance compensation is only the offset component (only parameter b).
- the addition value deriving unit 309313B derives the sum Y of the pixel values of the decoded image and the sum X of the pixel values of the reference image according to the already described formulas (B-2) and (B-3).
- the illuminance compensation filter unit 30932G uses the estimation parameter derived by the illuminance parameter estimation unit 30931G, and illuminates compensation only when the input predicted image is a motion compensation image derived using the reference list of the L0 list. I do. Specifically, the following operation is performed according to the values of predFlagL0 and predFlagL1.
- a predicted image predSamples ′ [] after illuminance compensation is derived from the predicted image predSamples] [] before illuminance compensation by the following equation.
- predSamples ⁇ [x] [y] predSamples [x] [y] + b
- predFlagL0 0
- predFlagL1 1, illuminance compensation is not applied. That is, the predicted image predSamples [] that is input to the illumination compensation filter unit 30932G matches the output predicted image predSamples ′ [] as in the following equation.
- predSamples ⁇ [x] [y] predSamples [x] [y]
- predFlagL0 1
- predFlagL1 1
- L0 is calculated from the predicted image predSamples L0 [] before illuminance compensation of L0 by the following equation.
- the predicted image predSamples L0 ′ [] after illuminance compensation is derived.
- predSamplesL0 ⁇ [x] [y] predSamples [x] [y] + b
- the weight prediction unit 3094 described later uses the L0 predicted image to which the illuminance prediction is applied, predSamplesL0 ′ [x] [y], and the L1 predicted image to which the illuminance prediction is not applied predSamplesL1 [x] [y].
- a predicted image is generated by the following expression.
- the illuminance compensation unit 3093G has an effect of reducing the processing amount because the illuminance prediction is limited to motion compensated images in which the reference picture using the L0 list is used (L0 only) (effect F5b). That is, there is an effect of avoiding a situation where the processing amount is large such that illuminance prediction is performed on two reference images. Unlike the case of prohibiting illuminance compensation in the case of simply bi-prediction, in the case of bi-prediction, since the illuminance compensation is performed on the reference picture using the L0 list, the performance degradation due to the limitation is small (effect F5c ) Has been obtained by the inventors' experiments.
- a predicted image predSamples ′ [] after illuminance compensation is derived from the predicted image predSamples [] before illuminance compensation by the following equation.
- predSamplesL0 ⁇ [x] [y] predSamplesL0 [x] [y] + b
- predFlagL0 0 and predFlagL1 is 1
- the predicted image predSamples ′ [] after illuminance compensation is derived from the predicted image predSamples [] before illuminance compensation by the following equation.
- predSamples ⁇ [x] [y] predSamples [x] [y] + b It should be noted that the prediction image predSamplesL1 [x] [y] of L1 can be explicitly expressed as follows.
- predSamplesL1 ⁇ [x] [y] predSamples L1 [x] [y] + b
- predFlagL0 1 and predFlagL1 is 1
- a prediction image predSamplesL0 [x] [y] of L0 to which illuminance prediction is not applied and a predicted image predSamplesL1 [x] of L1 to which illuminance prediction is not applied are described below.
- [y] is used to generate a predicted image, for example, according to the following equation.
- the illuminance parameter estimation unit 30931H sets the pixel C around the reference block on the reference layer image shown in FIG. 13 as the pixel value x [] of the reference image and the pixel L around the target block as the pixel value y [] of the decoded image. Based on the pixel value x [] of the reference image and the pixel value y [] of the decoded image, the parameter a and the parameter that are parameters for predicting the pixel value y [] of the decoded image from the pixel value x of the reference image b is derived.
- the addition value deriving unit 309313H derives the sum Y of the pixel values y of the decoded image and the sum X of the pixel values x of the reference image by the following equations (B-2) and (B-3).
- ⁇ ⁇ x [i] Formula (B-2)
- Y ⁇ y [i] Formula (B-3)
- ⁇ is a sum with respect to the reference region, and a sum with respect to an index i specifying a pixel in the reference region is derived.
- y [i] is the pixel value at index i of the decoded image
- x [i] is the pixel value at index i of the reference image.
- the count shift value iCountShift is a logarithm of 2 of the size (number of pixels) of the reference area.
- the first parameter deriving unit 309314H derives the first parameter a1 from the sum Y of the pixel values y of the decoded image by the following expression.
- the second parameter deriving unit 309315H derives the second parameter a2 from the sum X of the pixel values x of the reference image by the following expression.
- the regularization addition unit 309318H derives the regularization term acost from the sum X of the pixel values x of the reference image.
- acost X >> ashift formula (E-1 ')
- ashift is a predetermined constant, and is used to adjust the size of the regularization term acost by the right shift.
- the regularization term addition unit 309318E adds the regularization term to a parameter (for example, Y) used for derivation of the first parameter.
- the regularization term addition unit 309318E adds the regularization term to a parameter (for example, X) used for derivation of the second parameter.
- X X + acost formula (H-3)
- the addition of the regularization term may be performed by the first parameter deriving unit 309314B and the second parameter deriving unit 309315B.
- the first parameter and the second parameter are derived by the following equations instead of the equations (B-7 ′) and (B-8 ′).
- FIG. 86 is a block diagram showing the configuration of the parameter a deriving unit 309316H.
- the parameter a derivation unit 309316H includes a parameter clip unit 3093161H, a second normalization shift unit 3093163H, and a table base parameter a derivation unit 3093164H.
- the second normalization shift unit 3093163H derives the second normalization shift value iScaleShiftA2 by the following formula according to the magnitude of the second parameter a2.
- the derived second normalized shift value iScaleShiftA2 is output to the table base parameter a derivation unit 3093164H.
- iScaleShiftA2 Max (0, GetMSB (abs (a2))-6) Formula (B-14)
- the second normalization shift unit 3093163H right-shifts the second parameter a2 by the second normalization shift value iScaleShiftA2, and derives a normalization second parameter a2s.
- a2s a2 >> iScaleShiftA2 formula (B-16)
- the table base parameter a deriving unit 3093164H derives the parameter a shift value iScaleShiftA by the following equation.
- ScaleShiftA iScaleShiftA2 + 15-iShift formula (B-18 ')
- the table base parameter a derivation unit 3093164H refers to the reciprocal table value invTable determined according to the normalized second parameter a2s, takes the product with the normalized first parameter a1, and shifts to the right by the table shift value (ScaleShiftA).
- the parameter a is derived from the following equation.
- FIG. 84 shows the reciprocal table value invTable [] used in this embodiment.
- the reciprocal invTable [x] in FIG. 84 becomes 0 when the index x is 0, and when the index x is other than 0, a predetermined constant M (here, 2 to the 15th power) is x. Derived from the integer value obtained by dividing.
- parameter a corresponds to the ratio of the first parameter a1 and the second parameter a2 (a1 / a2 is left-shifted by iShift).
- the parameter clip unit 3093161H clips the range of parameter a to 0 or more and 255 or less, which is an 8-bit non-negative variable, by the following calculation.
- the parameter b deriving unit 309317H subtracts a value obtained by subtracting a value obtained by applying the parameter a to the sum X of the pixel values of the reference image and shifting the value to the right by the fixed shift value iShift from the sum Y of the pixel values of the decoded image.
- the parameter b is derived by the following equation.
- iCountShift (Y-((a * X) >> iShift) + (1 ⁇ (iCountShift-1))) >> iCountShift expression (B-20)
- iCountShift corresponds to dividing by the number of pixels in the reference area. It is appropriate to use a value from 4 to 7, for example, 5 as the fixed shift value.
- the illuminance compensation filter unit 30932B derives the predicted image predSamples ′ [] after illuminance compensation from the predicted image predSamples [] before illuminance compensation, using the estimation parameter derived by the illuminance parameter estimation unit 30931B. For example, when the parameter b is derived from the equation (B-20), the following equation is used.
- the reciprocal table invTable [x] is defined so as to be 0 when the index x is 0, and the reciprocal table invTable [x thus defined is defined.
- the parameter clip unit 3093161H clips the parameter a into an 8-bit non-negative integer range. Therefore, when the bit depth of the pixel value is 8 bits, the parameter a and the pixel value Since the product can be processed as a product of 8-bit non-negative integers, there is an effect that the processing by SIMD calculation or the like becomes easy.
- a configuration in which the parameter a derivation unit 309316H2 is used instead of the parameter a derivation unit 309316H in the illuminance parameter estimation unit 30931H in the illuminance compensation unit 3093 is also possible.
- FIG. 87 is a block diagram showing a configuration of the parameter a deriving unit 309316H2.
- the parameter a derivation unit 309316H2 includes a parameter clip unit 3093161H and a division parameter a derivation unit 3093165H.
- the division parameter a deriving unit 3093165H derives the parameter a by the following formula based on the ratio of the first parameter and the second parameter.
- the parameter clipping unit 3093161H clips the range of the parameter a to the range of the 8-bit non-negative variable.
- the same regularization term is added to the first parameter a1 and the second parameter a2, and then the parameter a having a value corresponding to the ratio between the first parameter a1 and the second parameter a2 is calculated.
- the parameter clip unit 3093161H clips the parameter a into an 8-bit non-negative integer range. Therefore, when the bit depth of the pixel value is 8 bits, the parameter a and the pixel value Since the product can be processed as a product of 8-bit non-negative integers, there is an effect that the processing by SIMD calculation or the like becomes easy.
- the parameter a derivation unit 309316H2 uses division to derive the parameter a. Division is an operation that is relatively complicated. However, the accuracy of the parameter a is improved by that amount, so that the encoding efficiency is increased.
- predSamples [x] [y] Clip3 (0, (1 ⁇ bitDepth) -1, (predSamplesLX [x] [y] + offset1) >> shift1)
- shift1 14 ⁇ bitDepth
- offset1 1 ⁇ (shift1-1).
- predFlagL0 or predFlagL1 are 1 (in the case of bi-prediction) and weight prediction is not used, the input motion displacement images predSamplesL0 and predSamplesL1 are averaged to obtain the number of pixel bits. The following formula is processed.
- predSamples [x] [y] Clip3 (0, (1 ⁇ bitDepth) -1, (predSamplesL0 [x] [y] + predSamplesL1 [x] [y] + offs)
- shift2 15 ⁇ bitDepth
- offset2 1 ⁇ (shift2-1).
- the weight prediction unit 3094 derives the weight prediction coefficient w0 and the offset o0, and performs the processing of the following equation.
- predSamples [x] [y] Clip3 (0, (1 ⁇ bitDepth) -1, ((predSamplesLX [x] [y] * w0 + 2log2WD-1) >> log2WD0) +
- log2WD is a variable indicating a predetermined shift amount.
- the weight prediction unit 3094 derives weight prediction coefficients w0, w1, o0, o1, and performs the following processing.
- FIG. 14A is a diagram illustrating a configuration of encoded data (configuration of an encoding unit) decoded by the inter prediction parameter decoding control unit 3031. As shown in FIG. 14A, the additional prediction flag xpred_flag is encoded after the prediction unit PU after PredMode and SkipFlag in the encoding unit (CU) structure.
- the additional prediction flag xpred_flag is present in the encoded data when the prediction parameter of each PU specified by the syntax element of the prediction unit located before the additional prediction flag xpred_flag is a predetermined value. Conversely, it does not exist when it is not a predetermined value.
- FIG. 14B is a diagram showing a configuration of encoded data of each prediction unit.
- the PU includes a merge_mode.
- merge_mode When merge_mode is 1, that is, in merge prediction mode, merge_idx is included.
- merge_mode When merge_mode is 0, that is, in the AMVP prediction mode, inter_pred_idx, ref_idx_l0, mvp_idx_l0, mvd_l0, ref_idx_l1, mvp_idx_l1, and mvd_l1 are included instead of merge_idx.
- inter_pred_idx takes one of the values Pred_L0, Pred_L1, and Pred_Bi, and indicates L0 prediction, L1 prediction, and bi-prediction, respectively.
- prediction parameters ref_idx_10, mvp_idx_10, and mvd_10 are included, and in the case of L1 prediction and bi-prediction, prediction parameters ref_idx_10, mvp_idx_10, and mvd_10 are included.
- FIG. 15 is a syntax table for indicating a configuration in the encoded data of the additional prediction flag.
- Coding_unit in the figure indicates that this syntax table is encoded data of the encoding unit.
- slice_type is other than I_SLICE
- skip_flag exists in the CU header CUH.
- prediction_unit () is included as PU data.
- prediction_unit the encoding parameter of PU is included.
- pred_mode_flag is included in CU header CUH.
- Depth_flag in FIG. 15 is a flag indicating whether or not the target layer is depth
- pred_mode is a flag indicating whether intra prediction MODE_INTRA or inter prediction MODE_INTER
- motion_pred_exists configures CU.
- disparity_pred_exists is a flag indicating whether displacement prediction (displacement compensation) is used in the PU constituting the CU.
- the determination formula indicating whether or not res_pred_flag is included is! depth_flag && pred_mode!
- ic_enable_flag is included as an additional prediction flag. Whether or not such additional prediction flags (res_pred_flag and ic_enable_flag) are included is determined by an additional prediction flag determination unit 30314 described later.
- FIG. 16 is a schematic diagram illustrating a configuration of the additional prediction flag determination unit 30314.
- the additional prediction flag determination unit 30314 includes a layer determination unit 303141 and an all PU parameter determination unit 303142.
- the layer determination unit 303141 determines whether the target layer is a base layer (base view) or not a base layer (base view), and further determines whether the target layer is depth or texture. .
- the layer determination unit 303141 determines that the target layer is not a base layer (base view) and is not depth, and determines that the target layer is invalid otherwise. The judgment of whether it is a base view is when ViewId is not 0 (ViewId) and is not depth!
- the additional prediction flag xpred_flag is residual prediction resi_pred_flag
- it is determined whether the prediction parameter is motion prediction (whether any of the PUs included in the CU includes motion prediction), and is set to motion_pred_exists.
- motion prediction that is, whether the PU vector is a motion vector
- the PU vector is a motion vector
- the additional prediction flag xpred_flag is illuminance compensation ic_enable_flag
- Whether the PU is a displacement prediction that is, whether or not the PU vector is a displacement vector, is true in the determination method of the reference layer determination unit 303111 included in the inter prediction parameter decoding control unit 3031 already described (in terms of the displacement vector). It is determined by the method determined to be (the same).
- FIG. 17 is a diagram illustrating an operation in which all PU parameter determination unit 303142 determines a flag motion_pred_exists indicating whether or not the CU includes a PU for which motion prediction is performed. As shown in FIG. 17, first, motion_pred_exists is set to false. Subsequently, the partition mode part_mode of the CU is checked, and whether or not the ref_view_id_lX that is the ViewId of the reference layer used for generating the predicted image of the PU is equal to the ViewId of the target layer is checked based on the inter_pred_idc of each PU included in the CU.
- the CU When the part_mode is PART_2Nx2N, the CU contains only one PU, and its coordinates are (x0, y0).
- the all PU parameter determination unit 303142 checks whether or not a PU that performs motion compensation is included in this one PU, and if included, sets motion_pred_exists to true. Specifically, when inter_pred_idc is not Pred_L1 (in the case of L0 prediction and bi-prediction, predFlagL0 is 1), since the L0 list is used, the view ID (ref_view_id_lX (ref_view_id_10) of the reference picture in the L0 list is used.
- the motion prediction is performed, and therefore, “true” is set in motion_pred_exists.
- inter_pred_idc is not Pred_L0 (L1). Since the L1 list is used for prediction and bi-prediction, the view ID (ref_view_id_lX (ref_view_id) of the reference picture in the L1 list is used. 11)) is equal to the view ID (ViewId) of the target layer, and if the view IDs of the view IDs of the target layer and the reference picture are equal, motion prediction is performed, and therefore, motion_pred_exists is set to true.
- part_mode is PART_2NxN
- PUs there are two PUs included in the CU, and their coordinates are (x0, y0) and (x0, y0 + nCbS / 2).
- the all PU parameter determination unit 303142 checks whether or not a PU that performs motion compensation is included in this one PU, and if included, sets motion_pred_exists to true.
- the view ID (ref_view_id_lX) of the reference picture is the view ID of the target layer with respect to the reference picture used by inter_pred_idc of coordinates (x0, y0) and coordinates (x0, y0 + nCbS / 2). It is checked whether or not it is equal to ID (ViewId). If both are equal, true is set in motion_pred_exists for performing motion prediction.
- description of other part_mode is abbreviate
- FIG. 18 is a diagram illustrating an operation in which all PU parameter determination unit 303142 determines a flag disparity_pred_exists indicating whether a CU includes a PU for which displacement prediction is performed.
- disparity_pred_exists is set to false.
- the partition mode part_mode of the CU is checked, and from the inter_pred_idc and ref_view_id_lX of all the PUs included in the CU, it is checked whether the PU that includes the displacement prediction is included in the PU, and if included, the motion_pred_exists is set to true. To do.
- the CU when part_mode is PART_2Nx2N, the CU contains only one PU, and its coordinates are (x0, y0). Specifically, the all PU parameter determination unit 303142 uses the L0 list when inter_pred_idc is not Pred_L1 (L0 prediction and bi-prediction), so that the ref_view_id_lX (ref_view_id_10) of the L0 list is the target layer. Check if it is equal to ViewId. When ViewId of the reference layer is not equal, displacement prediction is performed, and thus true is set in disparity_pred_exists.
- Pred_L1 L0 prediction and bi-prediction
- inter_pred_idc is not Pred_L0 (L1 prediction and bi-prediction)
- the L1 list since the L1 list is used, it is checked whether or not ref_view_id_lX (ref_view_id_l1) of the L1 list is equal to ViewId of the target layer.
- ref_view_id_lX ref_view_id_l1
- ViewId of the reference layer is not equal, displacement prediction is performed, and thus true is set in disparity_pred_exists.
- the other part_mode operations are the same as the determination of motion_pred_exists described with reference to FIG. 39 except for the determination of whether ViewId is equal, and thus the description thereof is omitted.
- the additional prediction flag determination unit 30314 uses the layer determination unit 303141 to determine whether the target layer is not a base layer (base view) and is a depth. Further, the all PU parameter determination unit 303142 determines whether the target CU is intra prediction. Further, the all PU parameter determination unit 303142 checks all PUs included in the CU. If any PU includes motion prediction, the residual prediction flag resi_pred_flag that is an additional prediction flag is included in the encoded data. judge.
- the additional prediction flag determination unit 30314 determines that the target layer is not a base layer (base view) and is not depth by the layer determination unit 303141, and further, the all PU parameter determination unit 303142 determines that the target CU is It is determined whether it is intra prediction.
- the all-PU parameter determination unit 303142 further checks all PUs included in the CU. If any PU included in the CU includes displacement prediction, the illumination compensation flag ic_enable_flag that is an additional prediction flag is encoded data. Is determined to be included.
- the inter prediction parameter decoding unit 303A includes an additional prediction flag decoding unit 30311A, a merge index decoding unit 30312, and a vector candidate index decoding unit 30313.
- FIG. 19 is a syntax table for illustrating a configuration of encoded data decoded by the additional prediction flag decoding unit 30311A.
- the additional prediction flag decoding unit 30311A derives the second flag ic_enable_flag as 0 indicating that no additional prediction is performed. This eliminates the need to derive the flag disparity_pred_exists indicating whether the CU required by the inter prediction parameter decoding unit 303A includes a PU including displacement prediction.
- the residual prediction flag res_pred_flag is encoded before the illumination compensation flag ic_enable_flag, but this order may be changed.
- a second additional prediction flag for example, ic_enable_flag
- the determination of whether or not the second additional prediction flag is present is performed based on the prediction parameter ( For example, since it can be performed without deriving the determination disparity_pred_exists) of whether or not the PU prediction parameter has a displacement vector, the decoding process of the additional prediction flag is facilitated.
- the two additional predictions are exclusive (if residual prediction is on, the illumination prediction is off, and vice versa), if the two additional predictions are exclusive, If the value of the second flag is on, the second flag is always turned off, so that decoding of the second flag is unnecessary.
- GRP generalized residual prediction
- a method called prediction ((ARP: Advanced Residual Prediction) may be used.
- a residual prediction weight res_pred_weight indicating a residual prediction weight may be used instead of the residual prediction flag res_pred_flag. It is also possible to use a residual prediction mode res_pred_mode indicating the type of residual prediction.
- the inter prediction parameter decoding unit 303A2 includes an additional prediction flag decoding unit 30311A2, a merge index decoding unit 30312, and a vector candidate index decoding unit 30313.
- FIG. 20 is a syntax table for illustrating a configuration of encoded data decoded by the additional prediction flag decoding unit 30311A2.
- the additional prediction flag decoding unit 30311A2 of the modified example A2 determines whether the first flag (here, res_pred_flag) illustrated in SE2001 of FIG. 20 exists. Whether or not the second flag (here, ic_enable_flag) shown in SE2002 of FIG. 20 exists is determined by using whether the flag motion_pred_exists indicating whether the PU includes motion prediction is 1 or not. Whether or not the flag motion_pred_exists indicating whether or not the derived PU includes motion prediction is used in the determination of the eye additional prediction flag (res_pred_flag) is used.
- the residual prediction flag res_pred_flag and the illumination compensation flag ic_enable_flag may be reversed. That is. Whether or not the first flag (here, ic_enable_flag) is present is determined based on whether disparity_pred_exists is 1 or not. The second flag (here, res_pred_flag) is used. The determination whether or not the PU includes motion prediction uses whether or not disparity_pred_exists is 0.
- the determination as to whether or not the second additional prediction flag exists is made the value used for the determination as to whether or not the first additional prediction flag exists. Therefore, the determination of whether or not the second additional prediction flag is present can be made without checking the prediction parameter of each PU, so that the additional prediction flag can be easily decoded. .
- FIG. 21 is a syntax table for illustrating a configuration of encoded data to be decoded by the inter prediction parameter decoding unit 303B. The difference from FIG. 15 is that in FIG.
- the flags used for the determination indicating whether or not there are additional prediction flags are the flags motion_pred_exists and disparity_pred_exists regarding the prediction method of any of the PUs constituting the CU.
- the flags are changed to the flags pu0_is_motion_pred and pu0_is_disparity_pred relating to the prediction method of the first PU (PU0), respectively.
- the additional prediction flag decoding unit 30311B includes an additional prediction flag determination unit 30314B instead of the additional prediction flag determination unit 30314 described above.
- FIG. 22 is a schematic diagram illustrating a configuration of the additional prediction flag determination unit 30314B.
- the additional prediction flag determination unit 30314B includes a layer determination unit 303141 and a PU0 parameter determination unit 303142B. Since the layer determination unit 303141 has already been described, the description thereof is omitted.
- the PU0 parameter determination unit 303142B checks the prediction parameter of the first PU (PU0) included in the target CU. If the additional prediction flag xpred_flag is the residual prediction flag resi_pred_flag, whether or not PU0 includes motion prediction The determination pu0_is_motion_pred is performed. When the additional prediction flag xpred_flag is the illuminance compensation flag ic_enable_flag, the determination pu0_is_disparity_pred is performed to determine whether or not PU0 includes displacement prediction.
- FIGS. 23A and 23B are diagrams illustrating operations for determining pu0_is_motion_pred and pu0_is_disparity_pred_ in the additional prediction flag determination unit 30314B.
- the additional prediction flag determination unit 30314B checks only the prediction parameter of the first PU without checking the prediction parameters of all the PUs included in the target CU. Therefore, there is an effect that the process of checking whether or not the additional prediction flag xpred_flag (here, the residual prediction flag res_pred_flag and the illumination compensation flag ic_enable_flag) is included in the encoded data is facilitated.
- the additional prediction flag xpred_flag here, the residual prediction flag res_pred_flag and the illumination compensation flag ic_enable_flag
- the inter prediction parameter decoding unit 303C includes an additional prediction flag decoding unit 30311C, a merge index decoding unit 30312, and a vector candidate index decoding unit 30313.
- FIG. 24 is a syntax table for illustrating a configuration in the encoded data decoded by the inter prediction parameter decoding unit 303C.
- the residual prediction flag res_pred_flag and the illuminance compensation flag ic_enable_flag used separate flags, but in FIG.
- FIG. 25 is a schematic diagram illustrating a configuration of the additional prediction flag decoding unit 30311C.
- the additional prediction flag decoding unit 30311C includes an additional prediction flag determination unit 30314C, a residual prediction determination unit 30315, and an illuminance compensation determination unit 30316.
- the additional prediction flag determination unit 30314C includes a layer determination unit 303141.
- the flag determination unit 30314C determines that the target layer is not a base layer (base view) and is not depth by the layer determination unit 303141. Further, the additional prediction flag determination unit 30314C determines that the encoded flag includes the shared flag res_pred_and_ic_enable_flag that is an additional prediction flag when the target CU is not intra prediction.
- the additional prediction flag decoding unit 30311C extracts (decodes) the additional prediction flag res_pred_and_ic_enable_flag from the encoded data, and determines that the additional prediction flag res_pred_and_ic_enable_flag is not included.
- the additional prediction flag res_pred_and_ic_enable_flag is set to 0 without decoding the encoded data.
- the additional prediction flag res_pred_and_ic_enable_flag is 0, neither additional prediction (residual prediction or illumination compensation) is performed.
- the additional prediction flag res_pred_and_ic_enable_flag is 1, it is determined whether residual prediction and illumination compensation are performed by the following determination.
- the residual prediction determination unit 30315 determines whether residual prediction is performed as additional prediction in each PU unit included in the CU.
- the illuminance compensation determination unit 30316 determines whether illuminance compensation is performed as additional prediction in each PU unit included in the CU.
- the additional prediction flag decoding unit 30311C having the above-described configuration, whether the additional prediction flag exists in the encoded data by using the additional prediction flag as a common flag for the residual prediction flag and the illumination compensation flag.
- the prediction parameter of the PU since the prediction parameter of the PU is not referred to, the dependency relationship between the prediction parameter and the flag disappears, and the problem of the perspective dependency is solved. Thereby, there exists an effect that the decoding process of an additional prediction flag becomes easy. Further, since one flag is included in the encoded data as the additional prediction flag instead of the two flags (residual prediction flag and illuminance compensation flag), there is an effect that the code amount of the flag is reduced.
- the inter prediction parameter decoding unit 303D includes an additional prediction flag decoding unit 30311D, a merge index decoding unit 30312, and a vector candidate index decoding unit 30313.
- FIG. 26 (a) is a diagram illustrating a configuration of encoded data (configuration of an encoding unit) decoded by the inter prediction parameter decoding control unit 3031D. Unlike FIG. 14A, the additional prediction flag is not included in the layer (CU header CUH, CU footer CUF) of the encoding unit.
- FIG. 26 (b) is a diagram illustrating a configuration of encoded data (a configuration of a prediction unit) decoded by the inter prediction parameter decoding control unit 3031D.
- the additional prediction flag is included in the layer of this prediction unit.
- the PU includes a merge_mode. When merge_mode is 1, that is, in merge prediction mode, merge_idx is included. Next to merge_idx, an additional prediction flag (here, residual prediction flag res_pred_flag and illuminance compensation flag ic_enable_flag) is included.
- merge_mode is 0, that is, in the AMVP prediction mode, the description is omitted because it is as described in FIG.
- the additional prediction flag decoding unit 30311D configured as described above, by limiting the additional prediction flag to the merge mode, the PU prediction parameter is determined in determining whether the additional prediction flag is present in the encoded data. Since there is no reference, the dependency between the prediction parameter and the flag disappears, and the problem of the perspective dependency is solved. Thereby, there exists an effect that the decoding process of an additional prediction flag becomes easy. Note that an additional prediction flag decoding unit 30311D2 and an additional prediction flag decoding unit 30311D3, which will be described later, have the same configuration as the additional prediction flag decoding unit 30311D, such as a flag in PU units.
- merge_idx 0
- merge_idx 0
- FIG. 29 is a syntax table for indicating a configuration in the encoded data of the additional prediction flag.
- the residual prediction flag res_pred_flag which is one of the additional prediction flags, is included in the encoded data.
- the inter-layer merge candidate motion prediction
- motion prediction motion prediction
- an additional prediction flag indicating whether or not to use the residual prediction flag res_pred_flag is decoded from the encoded data; otherwise (inter-layer merge candidate ( If it is not motion prediction), residual prediction is not used.
- merge_idx 0, which is likely to be an inter-layer merge candidate (motion prediction)
- merge_mode 1, which is highly effective otherwise, are merge mode candidates.
- the description is limited to the residual prediction flag, but may be applied to the illumination compensation flag.
- the merge candidate corresponding to the inter-layer merge candidate (displacement prediction) is the merge candidate of the index DV
- the residual prediction flag res_pred_flag that is one of the additional prediction flags is An additional prediction flag indicating whether or not to use ic_enable_flag included in the encoded data is decoded from the encoded data. If not (if not an inter-layer merge candidate (displacement prediction)), illumination compensation is not used. .
- the residual prediction flag ic_enable_flag is set to zero.
- the additional prediction flag decoding unit 30311D2 having the above configuration, the PU prediction parameter is not referred to in determining whether the additional prediction flag exists in the encoded data. There is no dependency, and the problem of perspective dependency is solved. Thereby, there exists an effect that the decoding process of an additional prediction flag becomes easy. Furthermore, according to the additional prediction flag decoding unit 30311D2, the additional prediction flag is decoded only when the merge index merge_idx is a predetermined value indicating an inter-layer merge candidate (inter-view merge candidate), so that the additional prediction is effective. In such a case, since the additional prediction flag is not included in the encoded data, the encoding efficiency is improved.
- Modification D3 of inter prediction parameter decoding unit (Modification D3 of inter prediction parameter decoding unit)
- an inter prediction parameter decoding unit 303D3 that is another configuration of Modification D will be described as another modification of the inter prediction parameter decoding unit.
- FIG. 30 (a) is a diagram illustrating a configuration of encoded data (configuration of an encoding unit) decoded by the inter prediction parameter decoding unit 303D3. As in FIG. 26 (a), the additional prediction flag is not included in the layer (CU header CUH, CU footer CUF) of the encoding unit.
- FIG. 30 (b) is a diagram illustrating a configuration of encoded data (configuration of a prediction unit) decoded by the inter prediction parameter decoding unit 303D3.
- the additional prediction flag is included in the layer of the prediction unit.
- the PU includes a merge_mode.
- merge_idx is included in the encoded data.
- merge_idx is not included in the encoded data and is derived as described later.
- FIG. 31 is a syntax table showing a configuration of encoded data when the additional prediction flag is a residual prediction flag (res_pred_flag).
- a residual prediction flag res_pred_flag is included before the merge index merge_idx.
- merge_idx is included in the encoded data when the residual prediction flag res_pred_flag which is an additional prediction flag is 0, and merge_idx is not included in the encoded data when res_pred_flag is 1.
- FIG. 32 is a syntax table showing a configuration of encoded data when the additional prediction flag is an illuminance compensation flag (ic_enable_flag).
- the judgment formula already described in FIG. depth_flag && ViewId && PredMode! If MODE_INTRA is true, the illumination compensation flag ic_enable_flag is included before the merge index merge_idx.
- merge_idx is included in the encoded data when the illumination compensation flag ic_enable_flag, which is an additional prediction flag, is 0, and merge_idx is not included in the encoded data when res_pred_flag is 1.
- FIG. 33 is a schematic diagram showing a configuration of another configuration D3 of Modification D of the inter prediction parameter decoding control unit.
- the inter prediction parameter decoding control unit 3031D3 includes an additional prediction flag decoding unit 30311D3, a merge index decoding unit 30312D3, and a vector candidate index decoding unit 30313.
- the additional prediction flag decoding unit 30311D3 adds the encoded prediction data from the CU header CUH or the CU footer CUF. Extract prediction flags.
- the merge index decoding unit 30312D3 extracts (decodes) the merge index merge_idx from the encoded data. Conversely, when the additional prediction flag is 1, the merge index merge_idx is derived without decoding from the encoded data.
- the merge candidate is the inter-layer merge candidate (motion prediction) described in FIG. 7, that is, the inter-layer candidate (inter-view candidate).
- an index for motion prediction is set as a merge index merge_idx.
- the inter-layer merge candidate (motion prediction) is mainly derived as index 0 (except when no inter-layer merge candidate (motion prediction) exists)
- merge_idx 0.
- the additional prediction flag is the illuminance compensation flag ic_enable_flag
- the inter-layer merge candidate (displacement prediction) described in FIG. 7, that is, the merge candidate is mainly the inter-layer candidate (inter-view candidate).
- Is set as a merge index merge_idx DV.
- merge_idx DV.
- the motion prediction candidate and the displacement prediction candidate are not separated from the inter layer candidates (inter view candidates)
- the inter layer merge candidate (motion prediction) and the inter layer merge candidate (displacement prediction) should be distinguished. Instead, an inter-layer candidate (inter-view candidate) may be simply selected.
- index when the additional prediction is not performed is 0 to 4
- other numbers such as an inter-layer merge candidate (5 for motion prediction, inter-layer merge candidate for performing additional prediction)
- An index of 6 may be assigned to (displacement prediction), and a merge candidate index that clearly distinguishes between motion prediction and displacement prediction may be selected.
- the PU prediction parameter is not referred to in determining whether the additional prediction flag exists in the encoded data. There is no dependency, and the problem of perspective dependency is solved. Thereby, there exists an effect that the decoding process of an additional prediction flag becomes easy. Further, the additional prediction flag is decoded before the merge index merge_idx, and when the additional prediction flag is valid, the range of the merge index merge_idx is limited (for example, when there is only one candidate as an option, By not including the merge index), the merge index that is not valid is not decoded when the additional prediction is valid, so that the encoding efficiency is improved.
- Modification D4 of inter prediction parameter decoding unit (Modification D4 of inter prediction parameter decoding unit)
- an inter prediction parameter decoding unit 303D4 that is another configuration of the modification example D will be described as another modification example of the inter prediction parameter decoding unit.
- Fig. 34 (a) is a diagram illustrating a configuration of encoded data (configuration of an encoding unit) decoded by the inter prediction parameter decoding unit 303D4.
- the additional prediction flag includes a CU header CUH located in front of the CU unit PU.
- Fig. 34 (b) is a diagram illustrating a configuration of encoded data (configuration of a prediction unit) decoded by the inter prediction parameter decoding unit 303D4.
- the additional prediction flag is not included in the encoded data for each PU.
- the additional prediction flag is set as a CU-unit flag, but the PU prediction parameter is referred to in determining whether or not the additional prediction flag exists in the encoded data. Therefore, the dependency between the prediction parameter and the flag disappears, and the problem of the perspective dependency is solved. Thereby, there exists an effect that the decoding process of an additional prediction flag becomes easy.
- the additional prediction flag is 1 (when additional prediction is used) using the additional prediction flag decoded before the merge index merge_idx
- the range of the merge index merge_idx is limited. By doing this (for example, in the case of one candidate, the merge index is not included), the merge index that is not effective when the additional prediction is effective is not decoded, so that the encoding efficiency is improved.
- an inter prediction parameter decoding unit 303E is provided instead of the inter prediction parameter decoding unit 303
- an inter prediction parameter decoding control unit 3031E is used instead of the inter prediction parameter decoding control unit 3031
- a merge prediction parameter deriving unit 3036 is provided.
- a merge prediction parameter deriving unit 3036E is provided. Since other means are the same as those of the inter prediction parameter decoding unit 303, description thereof is omitted.
- FIG. 35 is a diagram illustrating a configuration of encoded data decoded by the inter prediction parameter decoding unit 303E.
- FIG. 35 (a) shows the configuration of the encoding unit
- FIG. 35 (b) shows the configuration of the prediction unit.
- an additional prediction flag indicating whether or not to perform additional prediction is not explicitly included in the encoded data.
- FIG. 36 is a schematic diagram illustrating a configuration of the inter prediction parameter decoding control unit 3031E.
- the inter prediction parameter decoding control unit 3031E includes a merge index decoding unit 30312E and a vector candidate index decoding unit 30313E. Compared with the inter prediction parameter decoding unit 303, the additional prediction flag decoding unit 30311 is not included.
- the merge prediction parameter deriving unit 3036E includes a merge candidate deriving unit 30361E and a merge candidate selecting unit 30362. Unlike the merge candidate derivation unit 30361, the merge candidate derivation unit 30361E includes not only the vector mvLX and the reference picture index refIdxLX but also an additional prediction flag as a prediction parameter.
- the additional prediction flags are a residual prediction flag res_pred_flag and an illumination compensation flag ic_enable_flag.
- FIG. 37 is a diagram illustrating merge candidates derived by the merge candidate deriving unit 30361E.
- 37A shows a case where residual prediction is included as additional prediction
- FIG. 37B shows a case where illumination compensation is included as additional prediction
- FIG. 37C shows a case where residual prediction and illumination compensation are included as additional prediction. Show.
- the merge candidate derivation unit 30361 ⁇ / b> E does not perform the residual prediction and the merge candidate that performs the residual prediction as the merge candidate in the case of the configuration that performs the residual prediction as the additional prediction.
- Derive merge candidates Specifically, inter-layer merge candidates (motion prediction), spatial merge candidates, inter-layer merge candidates (displacement prediction), temporal merge candidates, combined merge candidates, and zero merge candidates are derived as merge candidates that are not subjected to residual prediction. Then, an inter-layer merge candidate (motion prediction) is derived as a candidate for performing residual prediction.
- the inter-layer merge candidate (motion prediction) in FIG. 37A is a merge candidate derived by the inter-layer merge candidate deriving unit 3036121 described with reference to FIG. 7, and the inter-layer merge candidate in FIG.
- the candidate (displacement prediction) is a merge candidate derived by the interlayer displacement merge candidate deriving unit 3036123 (the same applies hereinafter).
- the merge candidate derivation unit 30361E has, as a merge candidate, a merge candidate that performs illuminance compensation and a merge candidate that does not perform illuminance compensation.
- a merge candidate that does not perform illumination compensation an inter layer merge candidate (motion prediction), a spatial merge candidate, an inter layer merge candidate (displacement prediction), a temporal merge candidate, a combined merge candidate, and a zero merge candidate are derived.
- Interlayer merge candidates (displacement prediction) are derived as candidates for illuminance compensation.
- the merge candidate derivation unit 30361E when configured to perform both residual prediction and illuminance compensation as additional prediction, merge candidates and illuminance compensation that perform residual prediction as merge candidates. Merging candidates that perform, and merging candidates that do not perform residual prediction and illumination compensation. More specifically, as merge candidates that do not perform residual prediction and illumination compensation, an inter-layer merge candidate (motion prediction), a spatial merge candidate, an inter-layer merge candidate (displacement prediction), a temporal merge candidate, a combined merge candidate, and a zero merge candidate And inter-layer merge candidates (motion prediction) as candidates for residual prediction, and inter-layer merge candidates (displacement prediction) as candidates for illuminance compensation.
- the additional prediction flag is not included as a CU unit flag or a PU unit flag, it is not necessary to determine whether the additional prediction flag is present in the encoded data, that is, for decoding the additional prediction flag.
- the prediction parameter of the PU since the prediction parameter of the PU is not referred to, there is no dependency between the prediction parameter and the flag, and the problem of the perspective dependency is solved. Thereby, there exists an effect that the decoding process of an additional prediction flag becomes easy.
- the merge candidate deriving unit 30361E derives merge candidates for which additional prediction is performed and merge candidates for which additional prediction is not performed, so that whether or not to perform additional prediction is selected as one of the merge candidates.
- FIG. 43 is a block diagram illustrating a configuration of the inter prediction parameter decoding unit 303F1.
- the inter prediction parameter decoding unit 303F1 includes an illuminance compensation flag decoding unit 30311F1, a split mode decoding unit, a merge flag decoding unit 30317, a merge index decoding unit 30312, an inter prediction flag decoding unit, and a reference picture index decoding unit. 30318, a vector candidate index decoding unit 30313, and a vector difference decoding unit.
- the illuminance compensation flag decoding unit 30311F1 decodes the illuminance compensation flag ic_enable_flag from the encoded data, and conversely converts the encoded data into encoded data. If it is determined not to be included, the illuminance compensation flag ic_enable_flag is set to 0 (a value indicating that illuminance prediction is not performed) without decoding the encoded data.
- FIG. 44 is a flowchart showing the operation of the illumination compensation flag decoding unit 30311F1.
- S1104 Referring to the reference picture index ref_idx_LX, it is determined whether the target block is inter-layer prediction (inter-view prediction).
- inter-view prediction and the inter-layer prediction are not distinguished, and are simply referred to as inter-view prediction.
- the illumination compensation flag ic_enable_flag is decoded from the encoded data (S1105). Otherwise, ic_enable_flag is set to 00, which is a value indicating that illuminance compensation is not performed (S1106).
- the ref_idx_LX other than the merge mode is decoded from the encoded data by the reference picture index decoding unit 30318 (the same applies hereinafter).
- FIG. 46 is a diagram illustrating a configuration of encoded data of the illumination compensation flag ic_enable_flag decoded by the inter prediction parameter decoding unit 303F1.
- the illumination compensation flag ic_enable_flag is included in the encoded data.
- the condition (SF1001) of the illuminance compensation flag slice_ic_enable_flag for each slice is expressed by the following equation.
- slice_ic_enable_flag expression (F-1)
- SF1002 The condition (SF1002) as to whether or not the mode is the merge mode is expressed by the following equation.
- anyIvRefPicFlag is a flag indicating whether or not the target block (target CU) includes inter-layer prediction (inter-view prediction).
- x1 and y1 indicate the coordinates of the prediction unit when the target CU includes a plurality of prediction units.
- coordinates [x0] [x0] are the first prediction unit
- coordinates [x0] [y1] are the second prediction unit
- coordinates [x1] [y0] are the third prediction unit
- the coordinates [x1] [y1] correspond to the third prediction unit.
- the second determination method using the view ID is used as the determination as to whether the inter-layer prediction is used.
- the following formula (F-5) is used to indicate whether or not the inter-layer prediction is performed in the prediction unit specified by the coordinates [x] [y] and LX prediction. Then, it is defined as the logical sum of the formula (F-5) for the prediction unit in the target CU.
- refViewIdxLX [x] [y] indicates the view ID of a reference picture that the prediction unit of coordinates [x] [y] refers to using the LX list.
- refViewIdxLX [x0] [y] can be derived by the following equation.
- anyIvRefPicFlag anyIvRefPicFlag
- the illumination compensation flag is decoded from the encoded data regardless of the reference picture index, and when the prediction unit is in the AMVP mode, When the reference picture index of the prediction unit indicates inter-layer prediction (inter-view prediction), the illuminance compensation flag is decoded from the encoded data. Do not perform illumination compensation without decoding.
- the prediction unit when the prediction unit is in the merge mode, it is determined whether to decode the illuminance compensation flag ic_enable_flag from the encoded data, regardless of the reference picture index ref_idx_LX.
- the parsing of the compensation flag ic_enable_flag has an effect of solving the parse dependency that the prediction parameter of the merge mode (reference picture index ref_idx_LX) needs to be derived (effect F1).
- the conventional method using ref_idx_LX in the merge mode has a problem of perspective dependency.
- the reference picture index ref_idx_LX is explicitly encoded with encoded data, and therefore the value of the reference picture index ref_idx_LX is self-evident at the time of parsing the illumination compensation flag ic_enable_flag. Even if ic_enable_flag is decoded depending on ref_idx_LX, there is no parse dependency problem.
- the illumination compensation may be limited to the merge mode.
- the illumination compensation flag decoding unit decodes ic_enable_flag only in the merge mode, and does not decode ic_enable_flag in the case other than the merge mode (the same applies hereinafter).
- the illumination compensation flag decoding unit since illumination compensation is not performed in the AMVP mode, it is not necessary to determine whether the prediction is inter-view prediction (determination using the reference picture index ref_idx_LX), and thus the illumination compensation flag can be easily derived. Play.
- the illumination compensation in the AMVP mode is not performed, an effect that the prediction image generation is facilitated is achieved.
- the illuminance compensation flag decoding unit 30311F1 may further limit the case where the illuminance compensation flag is decoded from the encoded data to a case where the division mode of the encoding unit is not 2N ⁇ 2N. (Referred to as Modification F1 ′).
- FIG. 45 is a flowchart showing the operation of the illuminance compensation flag decoding unit 30311F1 when limiting to 2N ⁇ 2N.
- S1100 With reference to the partition mode part_mode encoded by the partition mode decoding unit, it is determined whether or not part_mode is 2N ⁇ 2N indicating that the target coding unit is not divided. In cases other than 2N ⁇ 2N, the illuminance compensation flag ic_enable_flag is set to 0 (S1106). In the case of 2N ⁇ 2N, the process proceeds to S1101.
- S1101 With reference to the merge flag merge_flag, it is determined whether or not the target block is in the merge mode (whether or not merge_flag is 1).
- the illumination compensation flag ic_flag is decoded from the encoded data (S1105). If it is not the merge mode, the process proceeds to S1104.
- S1104 Referring to reference picture index ref_idx_LX, it is determined whether the target block is inter-layer prediction. If it is inter-layer prediction, the illumination compensation flag ic_enable_flag is decoded from the encoded data (S1105). Otherwise, the illumination compensation flag ic_enable_flag is set to 0 (S1106) In this case, the encoded data configuration is similar to the encoded data configuration of FIG. 46, but condition SF1101 is used instead of condition SF1001. That is, the formula (F-1) is replaced with the following formula (F-1 ′).
- the conditions SF1002 and SF1003 are as described above, but the derivation formula for anyIvRefPicFlag in the condition SF1003 is simplified. Specifically, in the case of 2N ⁇ 2N, there is only one prediction unit included in the target CU, so that it can be derived by the following equation (F-7) instead of the equation (F-4).
- anyIvRefPicFlag anyIvRefPicFlag
- (inter_pred_idc [x0] [y0]! Pred_L0 && refViewIdxL1 [x0] [y0]!
- the illuminance compensation flag decoding unit of the modification example F1 ′ decodes the illuminance compensation flag ic_enable_flag from the encoded data when the division mode of the encoding unit is 2N ⁇ 2N indicating that no division is performed.
- the illuminance compensation flag ic_enable_flag By limiting the case where the illuminance compensation flag ic_enable_flag is decoded, there is an effect of reducing the code amount of the illuminance compensation flag ic_enable_flag.
- the number of prediction units included in the target CU is limited to one, there is an effect of reducing the processing amount of determination anyIvRefPicFlag for determining whether or not inter-layer prediction is included.
- the illuminance compensation is limited to 2N ⁇ 2N, for example, the case where the block size corresponding to 2N ⁇ N and N ⁇ 2N is 8 ⁇ 4 and 4 ⁇ 8 in 8 ⁇ 8 CU is excluded. Therefore, there is an effect of reducing the amount of processing particularly problematic when the block size is small.
- FIG. 47 is a block diagram illustrating a configuration of the inter prediction parameter decoding control unit 3031F2.
- the inter prediction parameter decoding control unit 3031F2 includes an illuminance compensation flag decoding unit 30311F2, a split mode decoding unit, a merge flag decoding unit 30317, a merge index decoding unit 30312, an inter prediction flag decoding unit, and a reference picture index decoding.
- the illumination compensation flag decoding unit 30311F2 decodes the illumination compensation flag ic_enable_flag from the encoded data and conversely converts the encoded data into encoded data. If it is determined not to be included, the illuminance compensation flag ic_enable_flag is set to 0 without decoding the encoded data.
- FIG. 48 is a flowchart showing the operation of the illumination compensation flag decoding unit 30311F2.
- S1201 Referring to merge flag merge_flag, it is determined whether the target block is in merge mode (whether merge_flag is 1). If the target block is in the merge mode, the illumination compensation flag ic_flag is decoded from the encoded data (S1203). If it is not the merge mode, the process proceeds to S1204.
- S1203 Referring to merge index merge_idx, it is determined whether merge_idx is a predetermined value. In the case of a predetermined value, the illuminance compensation flag ic_enable_flag is set to 0 (S1206).
- the illumination compensation flag ic_enable_flag is decoded from the encoded data (S1205).
- merge_idx is decoded by the merge index decoding unit 30312 (the same applies hereinafter).
- S1204 Referring to reference picture index ref_idx_LX, it is determined whether or not the target block includes inter layer prediction. When inter-layer prediction is included (anyIvRefPicFlag is 1), the illumination compensation flag ic_enable_flag is decoded from the encoded data (S1205). Otherwise (anyIvRefPicFlag is 0), the illumination compensation flag ic_enable_flag is set to 0 (S1206).
- the illuminance compensation flag decoding unit 30311F2 determines whether or not the illuminance compensation flag determination unit 30314F2 decodes the illuminance compensation flag from the encoded data.
- condition SF2001 is expressed by the formula (F-1 ′) already described.
- condition SF2002 is expressed by the following formula.
- merge_flag [x0] [y0] && merge_idx [x0] [y0]! 0 expression (F-2 ′)
- the condition SF2003 is expressed by the expression (F-3) already described.
- the illumination compensation flag ic_enable_flag is determined from the encoded data when the merge index is a predetermined value even in the merge mode based on the determination of the expression (F-2 ′) performed in S1201 and S1203. Set to 0 without decoding.
- the merge index is a predetermined value (in this case, 0)
- the reference picture is often the same layer as the target picture (it is motion prediction) (it is often motion prediction). Since the illumination compensation is not effective when the reference picture is the same layer as the target picture, it is useless to decode the illumination compensation flag ic_enable_flag from the encoded data in such a case. In the modified example F2, such a case can be prevented.
- the illuminance compensation flag decoding unit 30311F2 decodes the illuminance compensation flag ic_enable_flag from the encoded data when the prediction unit that is the generation target of the predicted image is in the merge mode and the merge flag index is other than a predetermined value. Further, when the prediction unit is in the AMVP mode and the reference picture index of the prediction unit indicates inter layer prediction, the illumination compensation flag ic_enable_flag is decoded from the encoded data. If none of the above, the illumination compensation flag ic_enable_flag is not decoded from the encoded data, and illumination compensation is not performed.
- the illumination compensation flag is decoded (encoded), There is an effect of reducing the code amount of the illumination compensation flag (effect F2).
- FIG. 50 is a block diagram illustrating a configuration of the inter prediction parameter decoding control unit 3031F3.
- the inter prediction parameter decoding control unit 3031F3 includes an illuminance compensation flag decoding unit 30311F3, a split mode decoding unit, a merge flag decoding unit 30317, a merge index decoding unit 30312, an inter prediction flag decoding unit, and a reference picture index decoding.
- the illuminance compensation flag decoding unit 30311F3 decodes the illuminance compensation flag ic_enable_flag from the encoded data, and conversely converts the encoded data into encoded data. If it is determined not to be included, the illuminance compensation flag ic_enable_flag is set to 0 without decoding the encoded data.
- the specific merge index illuminance compensation skip flag deriving unit 30319 derives a specific merge index illuminance compensation skip flag ic_skip_mergeidx0_flag from the encoded data.
- the image decoding apparatus 31 including the inter prediction parameter decoding unit 303F3 may include an entropy decoding unit 301F3 as the entropy decoding unit 301.
- FIG. 53 is a block diagram illustrating a configuration of the entropy decoding unit 301F3.
- the entropy decoding unit 301F3 includes a specific merge index illuminance compensation skip flag deriving unit 30319, decodes ic_skip_mergeidx0_flag from the encoded data, and notifies the illuminance compensation flag determination unit 30314F3.
- FIG. 51 is a flowchart showing the operation of the illumination compensation flag decoding unit 30311F3.
- S1301 Referring to merge flag merge_flag, it is determined whether or not the target block is in merge mode (whether merge_flag is 1). If the target block is the merge mode, the process proceeds to S1302 if it is the merge mode, and the process proceeds to S1304 if it is not the merge mode.
- S1302 It is determined whether the specific merge index illuminance compensation skip flag ic_skip_mergeidx0_flag is valid. If it is valid, the process proceeds to S1303. If not valid, the illumination compensation flag is decoded from the encoded data (S1305).
- ic_skip_mergeidx0_flag is decoded by the specific merge index illuminance compensation skip flag deriving unit 30319 (the same applies hereinafter).
- S1303 Referring to merge index merge_idx, it is determined whether or not merge index merge_idx is a predetermined value. In the case of a predetermined value, the illumination compensation flag ic_enable_flag is set to 0 (S1306). If it is not a predetermined value, the illumination compensation flag ic_enable_flag is decoded from the encoded data (S1305).
- S1304 Referring to reference picture index ref_idx_LX, it is determined whether or not the target block includes inter layer prediction.
- FIG. 52 is a diagram illustrating a configuration of encoded data of the illumination compensation flag ic_enable_flag decoded by the inter prediction parameter decoding unit 303F3.
- condition SF1101 is expressed by the formula (F-1 ′) already described.
- condition SF1202 is expressed by the following formula.
- the illuminance is obtained when ic_skip_mergeidx0_flag is 1 and the merge index merge_idx is a predetermined value even in the merge mode based on the determination of the expression (F-2 ′ ′′) performed in S1301 to S1303.
- the compensation flag ic_enable_flag is set to 0 without decoding.
- the modification F3 is different from the modification F2 in that only when ic_skip_mergeidx0_flag is 1, the determination based on the merge index merge_idx (identification of merge candidates) is performed.
- the merge index merge_idx is a predetermined value, the rate of inter-layer prediction is high, and conversely, if a merge candidate that does not perform illuminance prediction is selected, coding efficiency is reversed. This is because there is a possibility of lowering.
- FIG. 54 is a diagram illustrating a configuration of encoded data of the specific merge index illuminance compensation skip flag ic_skip_mergeidx0_flag. As shown in SF3004 of FIG. 54, ic_skip_mergeidx0_flag is encoded when the illuminance compensation flag slice_ic_enable_flag for each slice is valid in the slice header.
- the modification F3 in addition to the effect F1 of the modification 1, the effect F2 of the modification 2, and the specific merge index illuminance compensation skip flag is valid only when the merge flag index is other than a predetermined value.
- illumination compensation can be used when inter-layer prediction is frequently used even in the case of a specific merge index.
- inter-layer prediction is often used in the target picture, such as when the picture interval between the reference picture and the encoding target picture is long, the inter-layer prediction is often used even in the case of a specific merge index.
- the specific merge index illuminance compensation skip flag deriving unit 30319 of the modification F3 decodes the specific merge index illuminance compensation skip flag ic_skip_mergeidx0_flag from the encoded data.
- the encoding apparatus can change the picture structure, display order (POC), and sequence. Accordingly, it is possible to set whether or not to set a merge candidate for which illuminance prediction is not performed, so that an effect of improving the coding efficiency is achieved.
- ic_skip_mergeidx0_flag may be derived from the display order (POC) without decoding from the encoded data.
- POC display order
- a configuration using the specific merge index illuminance compensation skip flag deriving unit 30319B instead of the specific merge index illuminance compensation skip flag deriving unit 30319 will be described.
- FIG. 55 shows an example of a reference structure called a hierarchical reference structure.
- the period is 8, and the POC is encoded in the order of 0, 8, 4, 2, 1, 3, 6, 4, 7.
- the reference picture is 0, for a picture with a POC of 4, the reference picture is 8 and 0, for a picture with a POC of 2, the reference picture is 4 and 0, and the picture with a POC of 1 is the reference The picture is 2 and 0.
- POC difference the distance to the reference picture with the shortest time interval
- POC% 2 4 for a picture with a POC of 2
- a reference picture of a different layer at the same time is closer to the target image than a reference picture of the same layer at a different time, so that the reference picture is easily used. That is, an inter-layer image is likely to be used as a reference picture (inter-layer prediction is likely to be used).
- FIG. 56A is a flowchart showing the operation of the specific merge index illuminance compensation skip flag deriving unit 30319B.
- S3007B When the remainder between the reference picture and the predetermined value PERIOD (here, 8) is 0, it is determined that the time interval between the reference pictures in the same layer is large and inter-layer prediction is likely to be used, and ic_skip_mergeidx0_flag is set to 0. (S3008). In other cases, ic_skip_mergeidx0_flag is set to 1 (S3009).
- ic_skip_mergeidx0_flag is derived by the following formula.
- the illumination index becomes 0 without decoding the illumination compensation flag from the encoded data when the merge index is a specific value.
- ic_skip_mergeidx0_flag may be derived according to the distance between the display order (POC) and the reference picture included in the reference picture list without decoding from the encoded data.
- a configuration using the specific merge index illuminance compensation skip flag deriving unit 30319C instead of the specific merge index illuminance compensation skip flag deriving unit 30319 will be described.
- FIG. 56B is a flowchart showing the operation of the specific merge index illuminance compensation skip flag deriving unit 30319C.
- S3007C If the POC of the target picture and the POC of the reference picture are large, it is determined that the time interval between the reference pictures in the same layer is large and inter-layer prediction is likely to be used, and ic_skip_mergeidx0_flag is set to 0 (S3008). In other cases, ic_skip_mergeidx0_flag is set to 1 (S3009).
- the reference pictures included in the reference picture lists L0 and L1 are scanned to identify the POC reference picture aPicX closest to the target picture among the reference pictures in a layer different from the target picture.
- the POC interval DiffPicOrderCnt (aPic, currPic) is a reference picture included in the reference picture lists L0 and L1 and is a picture aPic in the same layer as the target picture.
- aPicX which is the aPic that minimizes.
- ic_skip_mergeidx0_flag DiffPicOrderCnt (aPic, currPic)> TH? 0: 1
- ic_skip_mergeidx0_flag DiffPicOrderCnt (aPic, currPic)> TH? 0: 1
- TH predetermined value
- the specific merge index illuminance compensation skip flag deriving unit derives the specific merge index illuminance compensation skip flag using a display order (POC).
- POC display order
- ic_skip_mergeidx0_flag may not be decoded from the encoded data, but may be derived depending on whether intra prediction is used in the reference picture.
- ic_skip_mergeidx0_flag may not be decoded from the encoded data, but may be derived depending on whether intra prediction is used in the reference picture.
- FIG. 57 is a flowchart showing the operation of the specific merge index illuminance compensation skip flag deriving unit 30319D.
- S3007D It is determined whether intra prediction is used in a reference picture block belonging to a position corresponding to the target block. When intra prediction is used, it is determined that inter layer prediction is likely to be used, and ic_skip_mergeidx0_flag is set to 0 (S3008). In other cases, ic_skip_mergeidx0_flag is set to 1 (S3009).
- ic_skip_mergeidx0_flag is derived by the following formula.
- ic_skip_mergeidx0_flag (PRED_MODE [x0] [y0] of xxx is MODE_INTRA)? 0: 1
- the specific merge index illuminance compensation skip flag deriving unit sets the specific merge index illuminance compensation skip flag according to whether intra prediction is used in the block of the first layer image belonging to the position corresponding to the target block. It is derived.
- FIG. 58 is a block diagram illustrating a configuration of the inter prediction parameter decoding control unit 3031F4.
- the inter prediction parameter decoding control unit 3031F4 includes an illuminance compensation flag decoding unit 30311F4, a split mode decoding unit, a merge flag decoding unit 30317, a merge index decoding unit 30312, an inter prediction flag decoding unit, and a reference picture index decoding.
- the illumination compensation flag decoding unit 30311F4 decodes the illumination compensation flag ic_enable_flag from the encoded data and conversely converts the encoded data into encoded data. If it is determined not to be included, the illuminance compensation flag ic_enable_flag is set to 0 without decoding the encoded data.
- FIG. 59 is a flowchart showing the operation of the illumination compensation flag decoding unit 30311F4.
- S1400 With reference to the division mode part_mode, it is determined whether or not part_mode is 2N ⁇ 2N indicating that the target encoding unit is not divided. If it is other than 2N ⁇ 2N, the illuminance compensation flag ic_enable_flag is set to 0 (S1406). In the case of 2N ⁇ 2N, the process proceeds to S1401.
- FIG. 60 is a diagram illustrating a configuration of encoded data decoded by the inter prediction parameter decoding unit 303F3.
- condition SF1101 is expressed by the formula (F-1 ′) already described.
- condition SF1202 is expressed by the following formula.
- anyIvRefPicFlag anyIvRefPicFlag
- the coordinates [x0-1] [y0] are the coordinates of the block adjacent to the left of the target block
- the coordinates [x0] [y0-1] are the coordinates of the block adjacent to the target block. If the block adjacent to the left of the target block or the block adjacent to the target block is inter-layer prediction (if refViewIdxLX and ViewIdx are different), it is determined that inter-layer prediction is used for the adjacent block .
- the illumination compensation flag ic_enable_flag is encoded according to the reference picture index ref_idx_LX of the block adjacent to the target block, regardless of the reference picture index ref_idx_LX of the target block.
- FIG. 61 is a block diagram illustrating a configuration of the inter prediction parameter decoding control unit 3031F5. As illustrated in FIG. 61, the inter prediction parameter decoding control unit 3031F5 includes an illuminance compensation flag decoding unit 30311F5 and a reference picture index decoding unit 30318.
- the illuminance compensation flag decoding unit 30311F5 decodes the illuminance compensation flag ic_enable_flag from the encoded data when inter-layer prediction is performed in L0 prediction in the prediction unit included in the target CU (anyIvRefPicFlagInL0 described later is 1). In other cases, 0 is set in ic_enable_flag.
- FIG. 62 is a flowchart showing the operation of the illumination compensation flag decoding unit 30311F5.
- S1501 With reference to a reference picture derived from the L0 list, it is determined whether the current block includes a prediction unit that performs inter-layer prediction (anyIvRefPicInL0Flag). When prediction using the L0 list includes a prediction unit that performs inter-layer prediction (anyIvRefPicInL0Flag is 1), the illumination compensation flag ic_enable_flag is decoded from the encoded data (S1505). Otherwise (anyIvRefPicInL0Flag is 0), the illumination compensation flag ic_enable_flag is set to 0 (S1506).
- anyIvRefPicInL0Flag is derived by the following equation when the coordinates of the target block (target CU) are [x0] [y0]. Since only the reference list of L0 different from Expression (F-8) is referred to, it is easy to determine whether or not a prediction unit that performs inter-layer prediction is included.
- anyIvRefPicInL0Flag anyIvRefPicInL0Flag
- anyIvRefPicInL0Flag anyIvRefPicInL0Flag
- x1 and y1 indicate the coordinates of the prediction unit when the target CU includes a plurality of prediction units. Specifically, coordinates [x0] [x0] are the first prediction unit, coordinates [x0] [y1] are the second prediction unit, coordinates [x1] [y0] are the third prediction unit, The coordinates [x1] [y1] correspond to the third prediction unit.
- the inter prediction flag inter_pred_idc [] [] indicates the prediction direction of the prediction unit, and is any one of L0 prediction (Pred_L0), L1 prediction (Pred_L1), and bi-prediction (Pred_BI). Therefore, the inter prediction flag inter_pred_idc [] [] being not Pred_L1 means the case of L0 prediction or bi-prediction.
- the reference layer of L0 here, the reference view
- refViewIdxL0 when it is other than the target layer (target view) ViewIdx, inter-layer prediction is used for L0 prediction.
- Pred_L1 && refViewIdxL0 [x0] [y0]! ViewIdx indicating whether or not inter-layer prediction is used in all prediction units included in the target CU. By obtaining the sum (
- refViewIdxL0 [x0] [y] indicates the view ID of the reference picture referenced by the prediction unit of coordinates [x] [y] using the LX list. This can be derived from the following equation in which LX in equation (F-6) is limited to L0.
- refViewIdxLX [x] [y] ViewIdx of the RefPicListL0 [ref_idx_l0 [x] [y]] formula (F-6 ')
- Formula (F-8 ′) and Formula (F-8 ′′) only the L0 prediction flag predFlagL0, the L0 reference picture index ref_idx_l0, the L0 reference picture list RefPicListL0 are referenced, and the L1 prediction flags predFlagL1 and L1 are referenced. Since the picture index ref_idx_l1 and the L1 reference picture list RefPicListL1 are not referred to, it is easy to determine whether or not a prediction unit that performs inter-layer prediction is included.
- FIG. 63 is a diagram illustrating a configuration of encoded data decoded by the inter prediction parameter decoding unit 303F3.
- condition SF1502 is based on anyIvRefPicInL0Flag already described, and is expressed by the following expression.
- Modification 5 may be limited to 2N ⁇ 2N indicating that the division mode of the encoding unit is not divided (referred to as Modification F5 ′).
- the condition SF1101 is used instead of the condition SF1001.
- the following formula (F-9) is used instead of the formula (F-8).
- the inter prediction flag inter_pred_idc and the prediction list flag predFlagLX correspond to each other, the following equation can be used instead of the equation (F-9) as a determination equation for determining whether or not the inter layer prediction is used.
- whether or not the inter-layer prediction is performed as in the formulas (F-8 ′) and (F-8 ′′). This determination is made based only on the information of the L1 reference picture, so it is easy to determine whether or not inter-layer prediction is performed.
- the illuminance compensation flag deriving unit of the modified example F5 has an effect of reducing the code amount of the illuminance compensation flag by limiting the case where the illuminance compensation flag is derived to the case where L0 prediction is performed (effect F5a).
- effect F5a since it is determined whether or not the inter-layer prediction is performed in the prediction unit included in the target CU based only on the information of the L1 reference picture, it is easy to determine whether or not the inter-layer prediction is performed. (Effect F5aa).
- illuminance compensation is performed on both the motion compensated image by the reference picture using the L0 list and the motion compensated image by the reference picture using the L1 list.
- the modification F5 that limits the illuminance compensation to L0 can be used in combination with the modifications 1 to 4 already described.
- modification F6 only the case where the modification 5 and the modification 3 are used together will be described as the modification F6, but the present invention can be applied to other examples.
- the inter prediction parameter decoding control unit 3031F6 includes an illuminance compensation flag decoding unit 30311F6 and a reference picture index decoding unit 30318.
- FIG. 64 is a block diagram illustrating a configuration of the inter prediction parameter decoding control unit 3031F3.
- the inter prediction parameter decoding control unit 3031F6 includes an illuminance compensation flag decoding unit 30311F6, a split mode decoding unit, a merge flag decoding unit 30317, a merge index decoding unit 30312, an inter prediction flag decoding unit, and a reference picture index decoding.
- FIG. 65 is a flowchart showing the operation of the illumination compensation flag decoding unit 30311F6.
- S1601 With reference to the merge flag merge_flag, it is determined whether or not the target block is in the merge mode (whether or not merge_flag is 1). If the target block is the merge mode, the process proceeds to S1602 if it is the merge mode, and the process proceeds to S1604 if it is not the merge mode.
- S1602 It is determined whether the specific merge index illuminance compensation skip flag ic_skip_mergeidx0_flag is valid. If it is valid, the process proceeds to S1603. If not valid, the illumination compensation flag is decoded from the encoded data (S1605).
- ic_skip_mergeidx0_flag is decoded by the specific merge index illuminance compensation skip flag deriving unit 30319 (the same applies hereinafter).
- S1603 Referring to merge index merge_idx, it is determined whether or not merge index merge_idx is a predetermined value. In the case of a predetermined value, the illumination compensation flag ic_enable_flag is set to 0 (S1606). If it is not a predetermined value, the illumination compensation flag ic_enable_flag is decoded from the encoded data (S1605).
- FIG. 66 is a diagram illustrating a configuration of encoded data of the illumination compensation flag ic_enable_flag decoded by the inter prediction parameter decoding unit 303F6.
- condition SF1101 is expressed by the formula (F-1 ′) already described.
- condition SF1202 is expressed by the formula (F-2 ′′) already described.
- the condition SF1603 is expressed by the following formula.
- the residual storage unit 313 stores the residual signal derived from the first layer image (base layer, base view) in the inverse quantization / inverse DCT unit 311.
- FIG. 38 is a diagram illustrating a configuration of the residual storage unit 313.
- FIG. 38A shows the configuration of the residual storage unit 313 corresponding to the case where the residual prediction unit 3092 reads out the range of residual values obtained in the reference layer.
- the residual storage unit 313 includes a residual value range limiting unit 3131, a residual storage memory 3132, and a residual reading unit 3133.
- the residual value range restriction unit 3131 restricts the residual range to ⁇ 1 ⁇ (BitDepthY ⁇ 1) to (1 ⁇ (BitDepthY ⁇ 1)) ⁇ 1 when the bit width of the pixel is bitDepthY.
- the residual reading unit 3133 reads the residual stored in the residual storage memory 3132. Specifically, the residual resSamples is recorded in the memory resStoreSamples of the residual storage memory 3132 as in the following equation.
- resStoreSamples [x] [y] clip3 (xmin, xmax, resSamples [x] [y]
- xmin ⁇ (1 ⁇ (BitDepthY ⁇ 1))
- xmax (1 ⁇ (BitDepthY ⁇ 1)) ⁇ 1
- x, and y are the coordinates of the storage destination.
- x is an integer of 0 or more and width-1 or less
- y is an integer of 0 or more and height-1) or less
- width and height are the width and height of the screen.
- the residual storage memory 3132 stores the residual with a bit depth of BitDepthY.
- the residual reading unit 3133 reads the residual recorded in the residual storage memory 3132 as follows.
- FIG. 38B is a diagram illustrating a residual storage unit 313A that is a modification of the residual storage unit 313.
- the residual storage unit 313A includes a residual reduction unit 3131A, a residual storage memory 3132, and a residual expansion unit 3133A.
- Residual reduction unit 3131A restricts the residual range to-(1 ⁇ (BitDepthY-1)) to (1 ⁇ (BitDepthY-1))-1 when the bit width of the pixel is bitDepthY.
- resStoreSamples [x] [y] clip3 (xmin, xmax, resSamples [N * x] [N * y])
- xmin ⁇ (1 ⁇ (BitDepthY ⁇ 1))
- xmax (1 ⁇ (BitDepthY ⁇ 1)) ⁇ 1
- x, and y are the coordinates of the storage destination.
- x is an integer of 0 or more and (width + N ⁇ 1) / N or less
- y is an integer of 0 or more and (height + N ⁇ 1) / N or less.
- width and height are the width and height of the screen.
- the residual storage memory 3132 stores the residual with a bit depth of BitDepthY.
- the residual expansion unit 3133A reads the residual recorded in the residual storage memory 3132 as follows.
- refResSamples L [x] [y] resStoreSamples [x / N] [y / N]
- x and y are the coordinates of the readout destination. Since the residual storage memory 3132 is reduced in the spatial direction, the coordinates (x, y) of the read destination correspond to (x / N, y / N) on the residual storage memory 3132. Note that interpolation processing such as linear interpolation may be performed at the time of reading.
- FIG. 39 is a block diagram illustrating a configuration of the image encoding device 11 according to the present embodiment.
- the image encoding device 11 includes a prediction image generation unit 101, a subtraction unit 102, a DCT / quantization unit 103, an entropy encoding unit 104, an inverse quantization / inverse DCT unit 105, an addition unit 106, a prediction parameter memory (prediction parameter storage). Unit, frame memory) 108, reference picture memory (reference image storage unit, frame memory) 109, coding parameter determination unit 110, prediction parameter coding unit 111, and residual storage unit 313 (residual recording unit). Is done.
- the prediction parameter encoding unit 111 includes an inter prediction parameter encoding unit 112 and an intra prediction parameter encoding unit 113.
- the predicted image generation unit 101 generates a predicted picture block P for each block which is an area obtained by dividing the picture for each viewpoint of the layer image T input from the outside.
- the predicted image generation unit 101 reads the reference picture block from the reference picture memory 109 based on the prediction parameter input from the prediction parameter encoding unit 111.
- the prediction parameter input from the prediction parameter encoding unit 111 is, for example, a motion vector or a displacement vector.
- the predicted image generation unit 101 reads the reference picture block of the block at the position indicated by the motion vector or the displacement vector predicted from the encoding target block.
- the prediction image generation unit 101 generates a prediction picture block P using one prediction method among a plurality of prediction methods for the read reference picture block.
- the predicted image generation unit 101 outputs the generated predicted picture block P to the subtraction unit 102. Note that since the predicted image generation unit 101 performs the same operation as the predicted image generation unit 308 already described, details of generation of the predicted picture block P are omitted.
- the predicted image generation unit 101 calculates an error value based on a difference between a signal value for each pixel of a block included in the layer image and a signal value for each corresponding pixel of the predicted picture block P. Select the prediction method to minimize.
- the method for selecting the prediction method is not limited to this.
- the plurality of prediction methods are intra prediction, motion prediction, and merge prediction.
- Motion prediction is prediction between display times among the above-mentioned inter predictions.
- the merge prediction is a prediction that uses the same reference picture block and prediction parameter as a block that has already been encoded and is within a predetermined range from the encoding target block.
- the plurality of prediction methods are intra prediction, motion prediction, merge prediction, and displacement prediction.
- the displacement prediction is prediction between different layer images (different viewpoint images) in the above-described inter prediction. Furthermore, motion prediction, merge prediction, and displacement prediction. For displacement prediction (disparity prediction), there are predictions with and without additional prediction (residual prediction and illuminance compensation).
- the predicted image generation unit 101 When the intra prediction is selected, the predicted image generation unit 101 outputs a prediction mode predMode indicating the intra prediction mode used when generating the predicted picture block P to the prediction parameter encoding unit 111.
- the prediction image generation unit 101 stores the motion vector mvLX used when generating the prediction picture block P in the prediction parameter memory 108 and outputs the motion vector mvLX to the inter prediction parameter encoding unit 112.
- the motion vector mvLX indicates a vector from the position of the encoding target block to the position of the reference picture block when the predicted picture block P is generated.
- the information indicating the motion vector mvLX may include information indicating a reference picture (for example, a reference picture index refIdxLX, a picture order number POC), and may represent a prediction parameter.
- the predicted image generation unit 101 outputs a prediction mode predMode indicating the inter prediction mode to the prediction parameter encoding unit 111.
- the prediction image generation unit 101 When the prediction image generation unit 101 selects the displacement prediction, the prediction image generation unit 101 stores the displacement vector used when generating the prediction picture block P in the prediction parameter memory 108 and outputs it to the inter prediction parameter encoding unit 112.
- the displacement vector dvLX indicates a vector from the position of the current block to the position of the reference picture block when the predicted picture block P is generated.
- the information indicating the displacement vector dvLX may include information indicating a reference picture (for example, reference picture index refIdxLX, view ID view_id) and may represent a prediction parameter.
- the predicted image generation unit 101 outputs a prediction mode predMode indicating the inter prediction mode to the prediction parameter encoding unit 111.
- the prediction image generation unit 101 selects merge prediction
- the prediction image generation unit 101 outputs a merge index merge_idx indicating the selected reference picture block to the inter prediction parameter encoding unit 112. Further, the predicted image generation unit 101 outputs a prediction mode predMode indicating the merge prediction mode to the prediction parameter encoding unit 111.
- the illuminance compensation prediction is performed in the illuminance compensation unit 3093 included in the predicted image generation unit 101 as described above.
- the residual storage unit 313 only needs to store a limited range of values as the residual, and thus has the effect of reducing the amount of memory for recording the residual.
- a residual prediction unit 3092B may be used instead of the residual prediction unit 3092.
- the linear interpolation of the residual is performed only for the luminance component, and the linear interpolation of the residual is not performed on the chrominance component. There is an effect of reducing the amount of processing used to derive the residual.
- a residual prediction unit 3092C may be used instead of the residual prediction unit 3092.
- the number of bits necessary for the residual of the chrominance component can be reduced in the derivation of the prediction residual, so that the memory for storing the residual of the chrominance component There is an effect of reducing the size.
- a residual prediction unit 3092D may be used instead of the residual prediction unit 3092. According to the moving picture coding apparatus including the residual prediction unit 3092D, there is an effect of omitting the memory size for storing the residual of the color difference component in the derivation of the prediction residual.
- the illuminance compensation unit 3093B may be used instead of the illuminance compensation unit 3093.
- the sum xy and xx which are sums of products, are derived using the accumulated shift value precShift according to the pixel bit depth, so that a predetermined range, for example, 32 bits. It is possible to derive the first parameter and the second parameter within the range, and the effect of facilitating the processing is achieved.
- an illuminance compensation unit 3093C may be used instead of the illuminance compensation unit 3093.
- the common shift unit 3093162C normalizes the value by using the same normalized shift value together with both the first parameter and the second parameter, so that processing is easy. Has the effect of becoming.
- an illuminance compensation unit 3093D may be used instead of the illuminance compensation unit 3093.
- the sum XY of the product of the pixel value of the decoded image and the pixel value of the reference image, the sum Y of the pixel value of the decoded image, and the sum X of the pixel value of the reference image From the value derived from the first parameter a1 derived from the product of the above, the sum XX of the squares of the pixel values of the reference image, and the second parameter a2 derived from the square of the sum X of the pixel values of the reference image
- the parameter a is derived by comparison with the derived value. Since there is no need to use the table invTable [] for subtracting the reciprocal of the second parameter, there is an effect that the processing becomes easy.
- the illuminance compensation unit 3093E may be used instead of the illuminance compensation unit 3093.
- the parameter a is derived from the first parameter a1 and the second parameter a2 to which the regularization term is added.
- the parameter a is substantially close to 1 (actually close to 1 ⁇ iShift), so that when there is an outlier, the estimated parameter becomes robust. Since the estimated parameter is robust, the estimation accuracy of the illumination compensation is improved, and the encoding efficiency is improved.
- an illuminance compensation unit 3093F may be used instead of the illuminance compensation unit 3093.
- the case where the illuminance prediction is used is limited to the motion compensated image in which the reference picture using the L0 list is used (L0 limitation) while maintaining the performance (effect).
- F5c there is an effect of reducing the processing amount (effect F5b) (Another form of the predicted image generation unit 101)
- a residual prediction unit 3092A is provided instead of the residual prediction unit 3092. According to the above configuration, since the residual storage unit 313 only needs to store the residual of the position to be referred to by limiting and reading the reference position of the residual, the amount of memory for recording the residual It has the effect of lowering.
- the subtraction unit 102 subtracts the signal value of the prediction picture block P input from the prediction image generation unit 101 for each pixel from the signal value of the corresponding block of the layer image T input from the outside, and generates a residual signal. Generate.
- the subtraction unit 102 outputs the generated residual signal to the DCT / quantization unit 103 and the encoding parameter determination unit 110.
- the DCT / quantization unit 103 performs DCT on the residual signal input from the subtraction unit 102 and calculates a DCT coefficient.
- the DCT / quantization unit 103 quantizes the calculated DCT coefficient to obtain a quantization coefficient.
- the DCT / quantization unit 103 outputs the obtained quantization coefficient to the entropy encoding unit 104 and the inverse quantization / inverse DCT unit 105.
- the entropy coding unit 104 receives the quantization coefficient from the DCT / quantization unit 103 and the coding parameter from the coding parameter determination unit 110.
- the input encoding parameters include codes such as a reference picture index refIdxLX, a vector index mvp_LX_idx, a difference vector mvdLX, a prediction mode predMode, and a merge index merge_idx.
- the entropy encoding unit 104 generates an encoded stream Te by entropy encoding the input quantization coefficient and encoding parameter, and outputs the generated encoded stream Te to the outside.
- the inverse quantization / inverse DCT unit 105 inversely quantizes the quantization coefficient input from the DCT / quantization unit 103 to obtain a DCT coefficient.
- the inverse quantization / inverse DCT unit 105 performs inverse DCT on the obtained DCT coefficient to calculate a decoded residual signal.
- the inverse quantization / inverse DCT unit 105 outputs the calculated decoded residual signal to the addition unit 106.
- the addition unit 106 adds the signal value of the predicted picture block P input from the predicted image generation unit 101 and the signal value of the decoded residual signal input from the inverse quantization / inverse DCT unit 105 for each pixel, and refers to them. Generate a picture block.
- the adding unit 106 stores the generated reference picture block in the reference picture memory 109.
- the prediction parameter memory 108 stores the prediction parameter generated by the prediction parameter encoding unit 111 at a predetermined position for each picture and block to be encoded.
- the reference picture memory 109 stores the reference picture block generated by the adding unit 106 at a predetermined position for each picture and block to be encoded.
- the encoding parameter determination unit 110 selects one set from among a plurality of sets of encoding parameters.
- the encoding parameter is a parameter to be encoded that is generated in association with the above-described prediction parameter or the prediction parameter.
- the predicted image generation unit 101 generates a predicted picture block P using each of these sets of encoding parameters.
- the encoding parameter determination unit 110 calculates a cost value indicating the amount of information and the encoding error for each of a plurality of sets.
- the cost value is, for example, the sum of a code amount and a square error multiplied by a coefficient ⁇ .
- the code amount is the information amount of the encoded stream Te obtained by entropy encoding the quantization error and the encoding parameter.
- the square error is the sum between pixels regarding the square value of the residual value of the residual signal calculated by the subtracting unit 102.
- the coefficient ⁇ is a real number larger than a preset zero.
- the encoding parameter determination unit 110 selects a set of encoding parameters that minimizes the calculated cost value. As a result, the entropy encoding unit 104 outputs the selected set of encoding parameters to the outside as the encoded stream Te, and does not output the set of unselected encoding parameters.
- the prediction parameter encoding unit 111 derives a prediction parameter used when generating a prediction picture based on the parameter input from the prediction image generation unit 101, and encodes the derived prediction parameter to generate a set of encoding parameters. To do.
- the prediction parameter encoding unit 111 outputs the generated set of encoding parameters to the entropy encoding unit 104.
- the prediction parameter encoding unit 111 stores, in the prediction parameter memory 108, a prediction parameter corresponding to the set of the generated encoding parameters selected by the encoding parameter determination unit 110.
- the prediction parameter encoding unit 111 operates the inter prediction parameter encoding unit 112 when the prediction mode predMode input from the prediction image generation unit 101 indicates the inter prediction mode.
- the prediction parameter encoding unit 111 operates the intra prediction parameter encoding unit 113 when the prediction mode predMode indicates the intra prediction mode.
- the inter prediction parameter encoding unit 112 derives an inter prediction parameter based on the prediction parameter input from the encoding parameter determination unit 110.
- the inter prediction parameter encoding unit 112 includes the same configuration as the configuration in which the inter prediction parameter decoding unit 303 (see FIG. 5 and the like) derives the inter prediction parameter as a configuration for deriving the inter prediction parameter.
- the configuration of the inter prediction parameter encoding unit 112 will be described later.
- the intra prediction parameter encoding unit 113 determines the intra prediction mode IntraIntraPredMode indicated by the prediction mode predMode input from the encoding parameter determination unit 110 as a set of inter prediction parameters.
- the inter prediction parameter encoding unit 112 is means corresponding to the inter prediction parameter decoding unit 303.
- FIG. 40 is a schematic diagram illustrating a configuration of the inter prediction parameter encoding unit 112 according to the present embodiment.
- the inter prediction parameter encoding unit 112 includes an inter prediction parameter encoding control unit 1031, a merge prediction parameter derivation unit 1121, an AMVP prediction parameter derivation unit 1122, a subtraction unit 1123, and a prediction parameter integration unit 1126.
- the merge prediction parameter derivation unit 1121 has the same configuration as the merge prediction parameter derivation unit 3036 (see FIG. 7).
- the inter prediction parameter coding control unit 1031 instructs a code related to inter prediction (decoding of syntax elements to the entropy coding unit 104), and a code (syntax element) included in the coded data is, for example, divided mode part_mode. , Merge flag merge_flag, merge index merge_idx, inter prediction flag inter_pred_idx, reference picture index refIdxLX, prediction vector index mvp_LX_idx, and difference vector mvdLX.
- the inter prediction parameter encoding control unit 1031 includes an additional prediction flag encoding unit 10311, a merge index encoding unit 10312, a vector candidate index encoding unit 10313, and a partition mode encoding unit not shown. It includes a merge flag encoding unit, an inter prediction flag encoding unit, a reference picture index encoding unit, and a vector difference encoding unit.
- the division mode encoding unit, the merge flag encoding unit, the merge index encoding unit, the inter prediction flag encoding unit, the reference picture index encoding unit, the vector candidate index encoding unit 10313, and the vector difference encoding unit are respectively divided modes.
- merge flag merge_flag merge index merge_idx
- inter prediction flag inter_pred_idx reference picture index refIdxLX
- prediction vector index mvp_LX_idx reference picture index refIdxLX
- difference vector mvdLX difference vector
- the additional prediction flag encoding unit 10311 encodes a flag xpred_flag indicating whether or not additional prediction is performed.
- the additional prediction flag encoding unit 10311 includes an additional prediction flag determination unit 30314 therein. As described above, the additional prediction flag determination unit 30314 determines whether or not the additional prediction flag xpred_flag is included in the encoded data. If the additional prediction flag determination unit 30314 determines that the additional prediction flag is included in the encoded data, the additional prediction flag encoding unit 10311 causes the entropy encoding unit 104 to re-encode the additional prediction flag. The syntax element corresponding to the additional prediction flag is encoded in the encoded data through the entropy encoding 104.
- the additional prediction flag encoding unit 10311 adds an additional corresponding to the corresponding encoding unit (CU) in the encoded data. Do not encode prediction flags.
- the merge index merge_idx is input from the encoding parameter determination unit 110 to the merge prediction parameter derivation unit 1121 when the prediction mode predMode input from the prediction image generation unit 101 indicates the merge prediction mode.
- the merge index merge_idx is output to the prediction parameter integration unit 1126.
- the merge prediction parameter derivation unit 1121 reads the reference picture index refIdxLX and the vector mvLX of the reference block indicated by the merge index merge_idx from the merge parameters from the prediction parameter memory 108.
- the merge candidate is a reference block (for example, a reference block in contact with the lower left end, upper left end, and upper right end of the encoding target block) within a predetermined range from the encoding target block to be encoded, This is a reference block for which encoding processing has been completed.
- the AMVP prediction parameter derivation unit 1122 has the same configuration as the AMVP prediction parameter derivation unit 3032 (see FIG. 8).
- the vector mvLX is input from the encoding parameter determination unit 110 to the AMVP prediction parameter derivation unit 1122.
- the AMVP prediction parameter derivation unit 1122 derives a prediction vector mvpLX based on the input vector mvLX.
- the AMVP prediction parameter derivation unit 1122 outputs the derived prediction vector mvpLX to the subtraction unit 1123. Note that the reference picture index refIdx and the vector index mvp_LX_idx are output to the prediction parameter integration unit 1126.
- the inter prediction parameter encoding unit 1031A includes an additional prediction flag encoding unit 10311A, a merge index encoding unit 10312, and a vector candidate index encoding unit 10313.
- the additional prediction flag encoding unit 10311A includes an additional prediction flag determination unit 30314A therein.
- the inter prediction parameter encoding unit 1031A and the additional prediction flag encoding unit 10311A are means corresponding to the already described inter prediction parameter decoding unit 303A and additional prediction flag decoding unit 30311A, and are added by the additional prediction flag determination unit 30314A.
- the method for determining whether or not the prediction flag is included in the encoded data is the same.
- the inter prediction parameter decoding unit 303A decodes the additional prediction flag when the additional prediction flag is included in the encoded data, but the inter prediction parameter encoding unit 1031A encodes the additional prediction flag.
- the inter prediction parameter encoding unit 1031A2 includes an additional prediction flag encoding unit 10311A2, a merge index encoding unit 10312, and a vector candidate index encoding unit 10313.
- the additional prediction flag encoding unit 10311A2 includes an additional prediction flag determination unit 30314A2 therein.
- the inter prediction parameter encoding unit 1031A2 and the additional prediction flag encoding unit 10311A2 are means corresponding to the inter prediction parameter decoding unit 303A2 and the additional prediction flag decoding unit 30311A2 described above, and are added by the additional prediction flag determination unit 30314A2.
- the method for determining whether or not the prediction flag is included in the encoded data is the same.
- the inter prediction parameter decoding unit 303A2 decodes the additional prediction flag when the encoded data includes the additional prediction flag, but the inter prediction parameter encoding unit 1031A2 encodes the additional prediction flag.
- whether or not the first flag exists is determined by using whether or not the disparity_pred_exists of the PU includes displacement prediction is 1.
- the determination whether or not the PU includes motion prediction uses whether or not disparity_pred_exists is 0.
- whether or not the second additional prediction flag exists is determined based on the value used for determining whether or not the first additional prediction flag exists. Since it is possible to determine whether or not the additional prediction flag exists without checking the prediction parameter of each PU, there is an effect that the decoding process of the additional prediction flag becomes easy.
- the inter prediction parameter encoding unit 1031B includes an additional prediction flag encoding unit 10311B, a merge index encoding unit 10312, and a vector candidate index encoding unit 10313.
- the additional prediction flag encoding unit 10311B includes an additional prediction flag determination unit 30314B therein.
- the inter prediction parameter encoding unit 1031B and the additional prediction flag encoding unit 10311B are means corresponding to the inter prediction parameter decoding unit 303B and the additional prediction flag decoding unit 30311B described above, and are added by the additional prediction flag determination unit 30314B.
- the method for determining whether or not the prediction flag is included in the encoded data is the same.
- the inter prediction parameter decoding unit 303B decodes the additional prediction flag when the encoded data includes the additional prediction flag, but the inter prediction parameter encoding unit 1031B encodes the additional prediction flag.
- the additional prediction flag determination unit 30314B only needs to check the prediction parameter of the first PU without checking the prediction parameters of all PUs included in the target CU. There is an effect that it is easy to check whether or not xpred (here, the residual prediction flag res_pred_flag and the illumination compensation flag ic_enable_flag) is included in the encoded data.
- the inter prediction parameter encoding unit 1031C includes an additional prediction flag encoding unit 10311C, a merge index encoding unit 10312, and a vector candidate index encoding unit 10313.
- the additional prediction flag encoding unit 10311B includes an additional prediction flag determination unit 30314C therein.
- the inter prediction parameter encoding unit 1031C and the additional prediction flag encoding unit 10311C are means corresponding to the inter prediction parameter decoding unit 303C and the additional prediction flag decoding unit 30311C described above, and are added by the additional prediction flag determination unit 30314C.
- the method for determining whether or not the prediction flag is included in the encoded data is the same.
- the inter prediction parameter decoding unit 303C decodes the additional prediction flag when the encoded data includes an additional prediction flag, but the inter prediction parameter encoding unit 1031C encodes the additional prediction flag.
- the additional prediction flag encoding unit 10311C having the above configuration, whether the additional prediction flag exists in the encoded data by using the additional prediction flag as a common flag for the residual prediction flag and the illumination compensation flag.
- the prediction parameter of the PU since the prediction parameter of the PU is not referred to, the dependency between the prediction parameter and the flag disappears, and the problem of the perspective dependency is solved. Thereby, there exists an effect that the decoding process of an additional prediction flag becomes easy. Further, since one flag is included in the encoded data as the additional prediction flag instead of the two flags (residual prediction flag and illuminance compensation flag), there is an effect that the code amount of the flag is reduced.
- the inter prediction parameter encoding unit 1031D includes an additional prediction flag encoding unit 10311D, a merge index encoding unit 10312, and a vector candidate index encoding unit 10313.
- the additional prediction flag encoding unit 10311B includes an additional prediction flag determination unit 30314C therein.
- the additional prediction flag encoding unit 10311D includes an additional prediction flag determination unit 30314D therein.
- the inter prediction parameter encoding unit 1031D and the additional prediction flag encoding unit 10311D are means corresponding to the inter prediction parameter decoding unit 303D and the additional prediction flag decoding unit 30311D described above, and are added by the additional prediction flag determination unit 30314D.
- the method for determining whether or not the prediction flag is included in the encoded data is the same.
- the inter prediction parameter decoding unit 303D decodes the additional prediction flag when the additional prediction flag is included in the encoded data, but the inter prediction parameter encoding unit 1031D encodes the additional prediction flag.
- the inter prediction parameter encoding unit 1031D2 includes an additional prediction flag encoding unit 10311D2, a merge index encoding unit 30312, and a vector candidate index encoding unit 30313.
- the additional prediction flag encoding unit 10311D2 includes an additional prediction flag determination unit 30314D2 therein.
- the additional prediction flag encoding unit 10311D includes an additional prediction flag determination unit 30314D2 therein.
- the inter prediction parameter encoding unit 1031D2 and the additional prediction flag encoding unit 10311D2 are means corresponding to the inter prediction parameter decoding unit 303D2 and the additional prediction flag decoding unit 30311D2 described above, and are added by the additional prediction flag determination unit 30314D2.
- the method for determining whether or not the prediction flag is included in the encoded data is the same.
- the inter prediction parameter decoding unit 303D2 decodes the additional prediction flag when the encoded data includes the additional prediction flag, but the inter prediction parameter encoding unit 1031D2 encodes the additional prediction flag.
- the additional prediction flag is limited to the merge mode, and further, the additional prediction flag is set as a flag for each PU.
- the prediction parameter of the PU is not referred to, so that the dependency between the prediction parameter and the flag is eliminated, and the problem of the perspective dependency is solved. Thereby, there exists an effect that the decoding process of an additional prediction flag becomes easy.
- the additional prediction flag decoding unit 30311D2 the additional prediction flag is encoded only when the merge index merge_idx is a predetermined value indicating an inter-layer merge candidate (inter-view merge candidate), thereby performing additional prediction.
- the additional prediction flag is not included in the encoded data, and thus the encoding efficiency is improved.
- the inter prediction parameter encoding unit 1031D3 includes an additional prediction flag encoding unit 10311D3, a merge index encoding unit 30312D3, and a vector candidate index encoding unit 30313.
- the additional prediction flag encoding unit 10311D3 includes an additional prediction flag determination unit 30314D3 therein.
- the additional prediction flag encoding unit 10311D3 includes an additional prediction flag determination unit 30314D3 therein.
- the inter prediction parameter encoding unit 1031D3 and the additional prediction flag encoding unit 10311D3 are means corresponding to the already described inter prediction parameter decoding unit 303D3 and additional prediction flag decoding unit 30311D3, and are added by the additional prediction flag determination unit 30314D3.
- the method for determining whether or not the prediction flag is included in the encoded data is the same.
- the inter prediction parameter decoding unit 303D3 decodes the additional prediction flag when the encoded data includes the additional prediction flag, but the inter prediction parameter encoding unit 1031D3 encodes the additional prediction flag.
- the additional prediction flag is limited to the merge mode, and further, whether or not the additional prediction flag exists in the encoded data by using a flag in PU units.
- the prediction parameter of the PU since the prediction parameter of the PU is not referred to, the dependency relationship between the prediction parameter and the flag is eliminated, and the problem of the perspective dependency is solved. Thereby, there exists an effect that the decoding process of an additional prediction flag becomes easy.
- the additional prediction flag is encoded before the merge index merge_idx, and when the additional prediction flag is valid, the range of the merge index merge_idx is limited (for example, in the case of one candidate, the merge index is not included). As a result, when the additional prediction is effective, the merge index that is not effective is not encoded, so that the encoding efficiency is improved.
- the inter prediction parameter encoding unit 1031D4 includes an additional prediction flag encoding unit 10311D4, a merge index encoding unit 30312D4, and a vector candidate index encoding unit 30313.
- the additional prediction flag encoding unit 10311D4 includes an additional prediction flag determination unit 30314D4 therein.
- the additional prediction flag encoding unit 10311D4 includes an additional prediction flag determination unit 30314D4 therein.
- the inter prediction parameter encoding unit 1031D4 and the additional prediction flag encoding unit 10311D4 are means corresponding to the inter prediction parameter decoding unit 303D4 and the additional prediction flag decoding unit 30311D4 described above, and are added by the additional prediction flag determination unit 30314D4.
- the method for determining whether or not the prediction flag is included in the encoded data is the same.
- the inter prediction parameter decoding unit 303D4 decodes the additional prediction flag when the encoded data includes the additional prediction flag, but the inter prediction parameter encoding unit 1031D4 encodes the additional prediction flag.
- the additional prediction flag is set as a CU-unit flag, but the PU prediction parameter is referred to in determining whether or not the additional prediction flag exists in the encoded data. Therefore, there is no dependency between the prediction parameter and the flag, so that the problem of the perspective dependency is solved.
- the additional prediction flag is 1 (when additional prediction is used) using the additional prediction flag encoded before the merge index merge_idx
- the range of the merge index merge_idx is set. By limiting (for example, in the case of one candidate, the merge index is not included), the merge index that is not effective when the additional prediction is effective is not encoded, so that the encoding efficiency is improved.
- an index for selecting a prediction parameter without using an additional prediction flag that is a dedicated syntax element for determining whether or not to perform additional prediction. Merge index).
- the additional prediction flag is not included as a CU unit flag or a PU unit flag, it is not necessary to determine whether or not the additional prediction flag exists in the encoded data. For this reason, since the prediction parameter of the PU is not referred to, the dependency between the prediction parameter and the flag is eliminated, and the problem of the perspective dependency is solved. Thereby, there exists an effect that the decoding process of an additional prediction flag becomes easy.
- the merge candidate deriving unit 30361E derives a merge candidate that performs additional prediction and a merge candidate that does not perform additional prediction, so that whether or not to perform additional prediction is selected as one of the merge candidates.
- additional prediction since it can be selected whether additional prediction is performed per PU, encoding efficiency improves.
- prediction parameters for which additional prediction is not effective are derived. In this case, since no candidate for performing additional prediction is provided, encoding efficiency is improved.
- An inter prediction parameter encoding unit 1031F1 may be used as another modification of the inter prediction parameter encoding unit.
- the inter prediction parameter encoding unit 1031F1 includes an additional prediction flag encoding unit 10311F1, a merge index encoding unit 30312, and a vector candidate index encoding unit 30313.
- the inter prediction parameter encoding unit 1031F2 may be used as another modification of the inter prediction parameter encoding unit.
- the inter prediction parameter encoding unit 1031F2 includes an additional prediction flag encoding unit 10311F2, a merge index encoding unit 30312, and a vector candidate index encoding unit 30313.
- the additional prediction flag encoding unit 10311F2 includes an additional prediction flag determination unit 30314F2.
- An inter prediction parameter encoding unit 1031F3 may be used as another modification of the inter prediction parameter encoding unit.
- the inter prediction parameter encoding unit 1031F3 includes an additional prediction flag encoding unit 10311F3, a merge index encoding unit 30312, and a vector candidate index encoding unit 30313.
- the additional prediction flag encoding unit 10311F3 includes an additional prediction flag determination unit 30314F3.
- the inter prediction parameter encoding unit 1031F4 may be used as another modification of the inter prediction parameter encoding unit.
- the inter prediction parameter encoding unit 1031F4 includes an additional prediction flag encoding unit 10311F4, a merge index encoding unit 30312, and a vector candidate index encoding unit 30313.
- the additional prediction flag encoding unit 10311F4 includes an additional prediction flag determination unit 30314F4.
- An inter prediction parameter encoding unit 1031F5 may be used as another modification of the inter prediction parameter encoding unit.
- the inter prediction parameter encoding unit 1031F5 includes an additional prediction flag encoding unit 10311F5, a merge index encoding unit 30312, and a vector candidate index encoding unit 30313.
- the additional prediction flag encoding unit 10311F5 includes an additional prediction flag determination unit 30314F5.
- An inter prediction parameter encoding unit 1031F5 may be used as another modification of the inter prediction parameter encoding unit.
- the inter prediction parameter encoding unit 1031F6 includes an additional prediction flag encoding unit 10311F6, a merge index encoding unit 30312, and a vector candidate index encoding unit 30313.
- the additional prediction flag encoding unit 10311F6 includes an additional prediction flag determination unit 30314F6.
- the subtraction unit 1123 subtracts the prediction vector mvpLX input from the AMVP prediction parameter derivation unit 1122 from the vector mvLX input from the encoding parameter determination unit 110 to generate a difference vector mvdLX.
- the difference vector mvdLX is output to the prediction parameter integration unit 1126.
- the prediction parameter integration unit 1126 When the prediction mode predMode input from the predicted image generation unit 101 indicates the merge prediction mode, the prediction parameter integration unit 1126 outputs the merge index merge_idx input from the encoding parameter determination unit 110 to the entropy encoding unit 104. To do.
- the prediction parameter integration unit 1126 performs the following process.
- the prediction parameter integration unit 1126 integrates the reference picture index refIdxLX and the vector index mvp_LX_idx input from the encoding parameter determination unit 110 and the difference vector mvdLX input from the subtraction unit 1123.
- the prediction parameter integration unit 1126 outputs the integrated code to the entropy encoding unit 104.
- a part of the image encoding device 11 and the image decoding device 31 in the above-described embodiment for example, the entropy decoding unit 301, the prediction parameter decoding unit 302, the predicted image generation unit 101, the DCT / quantization unit 103, and entropy encoding.
- Unit 104, inverse quantization / inverse DCT unit 105, encoding parameter determination unit 110, prediction parameter encoding unit 111, entropy decoding unit 301, prediction parameter decoding unit 302, predicted image generation unit 308, inverse quantization / inverse DCT unit 311 may be realized by a computer.
- the program for realizing the control function may be recorded on a computer-readable recording medium, and the program recorded on the recording medium may be read by a computer system and executed.
- the “computer system” here is a computer system built in either the image encoding device 11-11h or the image decoding device 31-31h, and includes an OS and hardware such as peripheral devices.
- the “computer-readable recording medium” refers to a storage device such as a flexible medium, a magneto-optical disk, a portable medium such as a ROM or a CD-ROM, and a hard disk incorporated in a computer system.
- the “computer-readable recording medium” is a medium that dynamically holds a program for a short time, such as a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line,
- a volatile memory inside a computer system serving as a server or a client may be included and a program that holds a program for a certain period of time.
- the program may be a program for realizing a part of the functions described above, and may be a program capable of realizing the functions described above in combination with a program already recorded in a computer system.
- part or all of the image encoding device 11 and the image decoding device 31 in the above-described embodiment may be realized as an integrated circuit such as an LSI (Large Scale Integration).
- LSI Large Scale Integration
- Each functional block of the image encoding device 11 and the image decoding device 31 may be individually made into a processor, or a part or all of them may be integrated into a processor.
- the method of circuit integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. Further, in the case where an integrated circuit technology that replaces LSI appears due to progress in semiconductor technology, an integrated circuit based on the technology may be used.
- the image decoding device of the first configuration when the illuminance compensation flag deriving unit for deriving the illuminance compensation flag indicating whether or not to perform illuminance compensation, and the illuminance compensation flag having a value indicating validity, An illuminance compensation unit that generates a predicted image of the target prediction unit using an illuminance change parameter from an image around the target prediction unit and a reference area image of a reference image corresponding to the target prediction unit, and the illuminance compensation flag
- the derivation unit decodes the illumination compensation flag from the encoded data when the prediction unit that is the generation target of the predicted image is in the merge mode, and refers to the prediction unit when the prediction unit is in the AMVP mode.
- the picture index indicates inter-layer prediction
- the prediction parameter in the merge mode is obtained by decoding the illuminance compensation flag from the encoded data regardless of the reference picture index.
- the illuminance compensation flag deriving unit for deriving the illuminance compensation flag indicating whether or not to perform illuminance compensation and the illuminance compensation flag is a value indicating validity
- An illuminance compensation unit that generates a predicted image of the target prediction unit using an illuminance change parameter from an image around the target prediction unit and a reference area image of a reference image corresponding to the target prediction unit, and the illuminance compensation flag
- the derivation unit decodes the illuminance compensation flag from the encoded data when the division mode of the encoding unit is 2N ⁇ 2N indicating that it is not divided, and otherwise, the illuminance compensation flag is encoded data. Therefore, it is derived that the illumination compensation is not performed without decoding.
- the encoding amount of the illuminance compensation flag is limited to the case where the encoding unit division mode is a specific mode, thereby achieving an effect of reducing the code amount of the illuminance compensation flag.
- the illuminance compensation flag deriving unit for deriving the illuminance compensation flag indicating whether or not to perform illuminance compensation and the illuminance compensation flag is a value indicating validity
- an illuminance compensation flag deriving unit that derives an illuminance compensation flag indicating whether or not to perform illuminance compensation;
- the illuminance compensation flag is a value indicating validity
- the target prediction is performed using the illuminance change parameter from the image around the target prediction unit on the target image and the reference area image of the reference image corresponding to the target prediction unit.
- An illuminance compensation unit that generates a predicted image of the unit, and the illuminance compensation flag deriving unit is configured to compensate the illuminance when the prediction unit that is the generation target of the predicted image is in the merge mode and the merge flag index is other than a predetermined value.
- the flag is decoded from the encoded data and the prediction unit is in AMVP mode, if the reference picture index of the prediction unit indicates inter-layer prediction, the illumination compensation flag is decoded from the encoded data, and If it is not any of the above, illuminance compensation is not performed without decoding the illuminance compensation flag from the encoded data. Characterized in that it out.
- the reference picture index that is a prediction parameter in the merge mode is obtained by decoding the illumination compensation flag from the encoded data without using the reference picture index. This has the effect of solving the dependency on the perspective that the derivation of.
- the illuminance compensation flag is decoded (encoded) only when the merge flag index is other than a predetermined value, whereby the code amount of the illuminance compensation flag is reduced.
- the specific merge index illumination compensation skip flag derivation unit for deriving the specific merge index skip flag is provided.
- the illuminance compensation flag deriving unit when the prediction unit that is the generation target of the predicted image is in the merge mode, the merge flag index is other than a predetermined value, and the specific merge index illuminance compensation skip flag is not valid,
- the illumination compensation flag is decoded from the encoded data and the prediction unit is in AMVP mode, the illumination compensation flag is decoded from the encoded data when the reference picture index of the prediction unit indicates inter-layer prediction. If none of the above is true, the illuminance compensation flag is derived without decoding from the encoded data without performing illuminance compensation.
- the specific merge index illuminance compensation skip flag deriving unit decodes the specific merge index illuminance compensation skip flag from the encoded data.
- the encoding apparatus can change the picture structure, display order (POC), and sequence. Since it can be set appropriately, the encoding efficiency is improved.
- the illuminance compensation unit that applies illuminance compensation to the motion compensated image
- the illuminance compensation unit includes a reference image region on the reference picture and a decoded image region on the decoding target picture.
- An illuminance parameter estimation unit for deriving parameters a and b as illuminance change parameters, and an illuminance compensation filter that performs illuminance compensation using the illuminance change parameters.
- the illuminance compensation filter is a motion compensated image obtained from a reference picture.
- the parameter b is added to the product of the parameter a and right-shifted by a predetermined fixed shift constant, or the parameter b is added to the product of the parameter a after right-shifting by a predetermined fixed shift constant, Illuminance compensation is performed and the illuminance parameter estimation unit shifts the sum of the pixel values of the reference image to the left by a fixed shift value. From the parameters a, based on the product of the sum of the pixel values of the decoded image, and wherein the deriving the parameters b.
- the right shift is performed using a predetermined fixed shift constant that is a fixed value, so that the processing by SIMD calculation or the like is facilitated as compared with the case of the right shift using a variable. Further, by using the parameter b, which is an offset component, before the right shift, the calculation can be performed with higher accuracy than when the offset component is added after the right shift.
- the illuminance parameter estimation unit includes the sum of the product of the pixel value of the reference image and the pixel value of the decoded image, and the sum of the pixel value of the reference image and the pixel value of the decoded image.
- a parameter a is derived from a first parameter derived from the product of the sum, a sum of squares of the pixel values of the reference image, and a second parameter derived from the square of the sum of the pixel values of the reference image;
- the illuminance parameter estimation unit derives an integrated shift value according to the pixel bit depth, and a sum of values obtained by shifting the product of the pixel value of the reference image and the pixel value of the decoded image to the right by the integrated shift value, and the reference image
- a first parameter derived from a value obtained by right-shifting the product of the sum of the pixel values of the decoded image and the sum of the pixel values of the decoded image by the integrated shift value, and right-shifting the square of the pixel value of the reference image by the integrated shift value 2 of the sum of the obtained values and the sum of the pixel values of the reference image
- the second parameter is derived from the value right shifted by the cumulative shift value, wherein the deriving the parameters a.
- the illumination compensation of the above configuration when taking the sum of the product of the pixel value of the reference image and the pixel value of the decoded image, and the sum of the product of the pixel value of the reference image and the sum of the pixel value of the decoded image, Before taking the sum, it is possible to derive the first parameter and the second parameter in a predetermined range, for example, a range of 32 bits, by shifting right with an integrated shift value determined according to the pixel bit depth. There exists an effect which processing becomes easy.
- the illuminance parameter estimation unit further includes a case where a sum of twice the pixel bit depth and a number corresponding to the logarithm of 2 of the number of pixels is equal to or greater than a predetermined constant.
- the first parameter and the second parameter are normalized by right-shifting by a predetermined fixed shift value.
- the illuminance parameter estimation unit includes the sum of the product of the pixel value of the reference image and the pixel value of the decoded image, and the sum of the pixel value of the reference image and the pixel value of the decoded image.
- the parameter a is derived from the first parameter derived from the product of the sum, the sum of the squares of the pixel values of the reference image, and the second parameter derived from the square of the sum of the pixel values of the reference image.
- a first parameter and a second parameter are derived from the image and the decoded image, a normalized shift value determined according to the magnitude of the second parameter is derived, and the first parameter and the second parameter are expressed by the normalized shift value.
- a normalization first parameter and a normalization second parameter are derived by shifting to the right, and a table is obtained from the normalization first parameter or a value obtained by multiplying the normalization first parameter by a predetermined constant, and the normalization second parameter.
- the illuminance parameter estimation unit includes the sum of the product of the pixel value of the reference image and the pixel value of the decoded image, and the sum of the pixel value of the reference image and the pixel value of the decoded image.
- the parameter a is derived from the first parameter derived from the product of the sum, the sum of the squares of the pixel values of the reference image, and the second parameter derived from the square of the sum of the pixel values of the reference image.
- the size of the first parameter is normalized using the normalized shift value determined by the size of the first parameter. Even when the value is normalized using the same normalized shift value together with both the first parameter and the second parameter, the product with the table value exceeds a predetermined value (for example, a 32-bit range). The operation can be performed without any problem, and the processing becomes easy.
- the illuminance parameter estimation unit uses a value of 0 or more and 255 or less as the parameter a.
- the parameter a is in the range of 8-bit non-negative integer
- the bit depth of the pixel value is 8 bits
- the product of the parameter a and the pixel value is the product of 8-bit non-negative integers.
- a value clipped to 0 or more and twice or less of a fixed shift constant power of 1 is used.
- the effect of the illuminance prediction is increased by limiting the range of the parameter a to a range where the illuminance compensation works effectively. Even when the illumination compensation parameter exceeds the above range, the target block may work effectively.
- the case where illuminance prediction exceeding the above range is required for the predicted image means that the predicted image before illuminance prediction is not appropriate.
- a prediction parameter such as a motion vector or a reference picture is not appropriate, by applying a large change using illumination compensation, the prediction is not appropriate. Since no prediction parameter is transmitted to the subsequent block, the subsequent block is adversely affected, resulting in a decrease in coding efficiency.
- the illuminance parameter estimation unit applies illuminance prediction only when the target prediction unit is a square.
- the size of the motion compensation block is limited to a square, so that the sum of the number of pixels of the decoded image and the reference image used to derive the illuminance parameter which is the sum of the horizontal and vertical of the motion compensation block is 2 Therefore, when the parameter b, which is an offset component, is obtained from the quotient of the number of pixels, it can be derived by a right shift by a logarithm of 2 that is twice the size of the motion compensation block. Since it is possible to derive an accurate offset value by right shift without using division, there is an effect that the processing becomes easy.
- the illuminance parameter estimation unit includes a first parameter derived from a sum of a product of a pixel value of the reference image and a pixel value of the decoded image, a product of a sum of the pixel value of the reference image and a sum of the pixel values of the decoded image,
- the parameter a is derived from the sum of the squares of the pixel values of the reference image and the second parameter derived from the square of the sum of the pixel values of the reference image, and the first parameter and the second parameter are derived from the reference image and the decoded image.
- the parameter a is derived by comparing the sum of the squares of the pixel values of the reference image with a value derived from the second parameter derived from the square of the sum of the pixel values of the reference image To do.
- the illuminance compensation with the above configuration has an effect of facilitating processing because it is not necessary to use a table for subtracting the reciprocal of the second parameter when deriving the parameter a corresponding to the quotient of the second parameter of the first parameter. . Further, in order to subtract the reciprocal with a table having a predetermined size, normality is usually required to keep the second parameter within a predetermined range, but this normalization processing is not necessary. In addition, since the product of the reciprocal of the first parameter and the second parameter does not exceed a predetermined value, a normalization process for normalizing the first parameter is not necessary.
- the illuminance compensation unit includes the sum of the product of the pixel value of the reference image and the pixel value of the decoded image, and the sum of the pixel value of the reference image and the pixel value of the decoded image.
- a parameter a is derived from a first parameter derived from the product of the above, a sum of squares of the pixel values of the reference image, and a second parameter derived from the square of the sum of the pixel values of the reference image;
- the illuminance compensation unit adds the same regularization term to the first parameter and the second parameter, or adds the same regularization term to the element that derives the first parameter and the element that derives the second parameter
- a term adder is provided.
- the estimated parameter becomes robust when there is an outlier. Since the estimated parameter is robust, the estimation accuracy of the illumination compensation is improved, and the encoding efficiency is improved.
- the residual recording unit that records the luminance component residual of the first layer image, and the luminance component residual recorded in the residual recording unit
- a prediction image generation unit that generates a prediction image of a second layer image different from the first layer image, and the prediction image generation unit outputs a residual when reading out the residual of the luminance component from the residual recording unit;
- Means is provided for clipping to a range that falls within a predetermined bit width determined from the pixel bit width.
- the image decoding device does not record the residual of the color difference component of the first layer image, and does not record the color difference component of the second layer image different from the first layer image.
- the prediction image generation using the residual is not performed.
- a prediction image generation unit that generates a prediction image of a second layer image different from the first layer image, and the prediction image generation unit reads out a residual of the luminance component from the residual recording unit.
- the present invention can be suitably applied to an image decoding apparatus that decodes encoded data obtained by encoding image data and an image encoding apparatus that generates encoded data obtained by encoding image data. Further, the present invention can be suitably applied to the data structure of encoded data generated by an image encoding device and referenced by the image decoding device.
- Inter prediction Parameter encoding unit 1031D ... inter prediction parameter encoding unit 1031D2 ... inter prediction parameter encoding unit 1031D3 ... inter prediction parameter encoding unit 1031D4 ... inter prediction parameter encoding unit 1031E ... inter prediction parameter encoding unit 1031F1 ... inter prediction parameter code Conversion unit 1031F2 ... inter prediction parameter encoding unit 1031F3 ... inter prediction parameter encoding unit 1031F4 ... inter prediction parameter encoding unit 103 F5 ... inter prediction parameter encoding unit 1031F6 ... inter prediction parameter encoding unit 10311 ... additional prediction flag encoding unit 10311F1 ... additional prediction flag encoding unit 10311F2 ...
- Additional prediction flag encoding unit 10311F3 ... additional prediction flag encoding unit 10311F4 ... Additional prediction flag encoding unit 10311F5 ... Additional prediction flag encoding unit 10311F6 ... Additional prediction flag encoding unit 1121 ... Merge prediction parameter derivation unit 1122 ... AMVP prediction parameter derivation unit 1123 ... Subtraction unit 1126 ... Prediction parameter integration unit 113 ... Intra prediction Parameter encoding unit 21 ... Network 31 ... Image decoding device 301 ... Entropy decoding unit 302 ... Prediction parameter decoding unit 303 ... Inter prediction parameter decoding unit 303A ... Inter prediction parameter decoding unit 03A2 ... Inter prediction parameter decoding unit 303B ...
- Inter prediction parameter decoding unit 303C ... Inter prediction parameter decoding unit 303D ... Inter prediction parameter decoding unit 303D2 ... Inter prediction parameter decoding unit 303D3 ... Inter prediction parameter decoding unit 303D4 ... Inter prediction parameter decoding unit 303E ... Inter prediction parameter decoding unit 3031 ... Inter prediction parameter decoding control unit 3031D ... Inter prediction parameter decoding control unit 3031E ... Inter prediction parameter decoding control unit 30311 ... Additional prediction flag decoding unit 30311A ... Additional prediction flag decoding unit 30311A2 ... Additional prediction flag decoding Unit 30311B ... additional prediction flag decoding unit 30311C ... additional prediction flag decoding unit 30311D ... additional prediction flag decoding unit 30311D2 ...
- Additional prediction flag decoding unit 30311D ... Measurement flag decoding unit 30311D3 ... Additional prediction flag decoding unit 30311D4 ... Additional prediction flag decoding unit 30311F1 ... Illumination compensation flag decoding unit 30311F2 ... Illumination compensation flag decoding unit 30311F3 ... Illumination compensation flag decoding unit 30311F4 ... Illumination compensation flag decoding unit 30311F5 ... Illumination compensation Flag decoding unit 30311F6 ... Illuminance compensation flag decoding unit 303111 ... Reference layer determination unit 30312 ... Merge index decoding unit 30312D3 ... Merge index decoding unit 30312E ... Merge index decoding unit 30313 ...
- Vector candidate index decoding unit 30313E ...
- Vector candidate index decoding unit 30314 ... Additional prediction flag determination unit 30314A ... Additional prediction flag determination unit 30314A2 ... Additional prediction flag determination unit 30314B ... Additional prediction flag Determination unit 30314C ... additional prediction flag determination unit 30314D ... additional prediction flag determination unit 30314D2 ... additional prediction flag determination unit 30314D3 ... additional prediction flag determination unit 30314D4 ... additional prediction flag determination unit 303141 ... layer determination unit 303142 ... all PU parameter determination unit 303142B ... PU0 parameter determination unit 303143 ... index determination unit 30315 ... residual prediction determination unit 30316 ... illuminance compensation determination unit 30319 ...
- interlayer displacement merge candidate derivation unit 303613 ... basic merge candidate derivation unit 3036131 ... spatial merge candidate derivation unit 3036132 ... time merge candidate derivation unit 3036133 ... join merge candidate derivation unit 3036134 ... zero merge candidate derivation unit 30361E ... merge candidate derivation unit 30362 ... Merge candidate selection unit 304 ... Intra prediction parameter decoding unit 306 ... Reference picture memory (frame memory) 307 ... Prediction parameter memory (frame memory) 308 ... Prediction image generation unit 309 ... Inter prediction image generation unit 3091 ... Displacement compensation unit 3092 ... Residual prediction unit 3092A ... Residual prediction unit 3092B ... Residual prediction unit 3092B ...
- Residual prediction unit 3092C ... Residual prediction unit 3092D ... Residual prediction unit 30921 ... residual acquisition unit 30921A ... residual acquisition unit 30922 ... residual filter unit 3093 ... illuminance compensation unit 3093B ... illuminance compensation unit 3093C ... illuminance compensation unit 3093D ... illuminance compensation unit 3093E ... illuminance compensation unit 3093F ... illuminance compensation unit 3093F ... Compensation unit 3093G ... Illuminance compensation unit 3093H ... Illumination compensation unit 30931 ... Illuminance parameter estimation unit 30931H ... Illuminance parameter estimation unit 3093111B ... Integrated shift value deriving unit 3093112B ...
- Integrated value deriving unit 309313B ... Addition value deriving unit 309313H ... Addition value deriving unit 309314B ... First parameter derivation 309314C ... first parameter derivation unit 309314D ... first parameter derivation unit 309314H ... first parameter derivation unit 309315B ... second parameter derivation unit 309315H ... second parameter derivation unit 309316B ... parameter a derivation unit 309316C ... parameter a derivation unit 309316D ... parameter a derivation unit 309316H ... parameter a derivation unit 309316H2 ... parameter a derivation unit 3093161B ... first parameter clip unit 3093161H ...
- parameter clip unit 3093162B ... first parameter shift unit 3093163B ... second parameter shift unit 3093163H ... second normalization shift unit 3093164B ... Table base parameter a derivation unit 3093164H ... Table base parameter a derivation unit 3093165H Division parameter a derivation unit 309316C ... parameter a derivation unit 3093161C ... first parameter clip unit 3093162C ... common shift unit 3093164C ... table base parameter a derivation unit 309317B ... parameter b derivation unit 309317G ... parameter b derivation unit 309317H ... parameter b derivation unit 309318E ... Regularization term addition unit 309318H ...
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
以下、図面を参照しながら本発明の実施形態について説明する。
本実施形態に係る画像符号化装置11および画像復号装置31の詳細な説明に先立って、画像符号化装置11によって生成され、画像復号装置31によって復号される符号化ストリームTeのデータ構造について説明する。
シーケンスレイヤでは、処理対象のシーケンスSEQ(以下、対象シーケンスとも称する)を復号するために画像復号装置31が参照するデータの集合が規定されている。シーケンスSEQは、図2の(a)に示すように、ビデオパラメータセット(Video Parameter Set)シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。ここで#の後に示される値はレイヤIDを示す。図2では、#0と#1すなわちレイヤ0とレイヤ1の符号化データが存在する例を示すが、レイヤの種類およびレイヤの数はこれによらない。
ピクチャレイヤでは、処理対象のピクチャPICT(以下、対象ピクチャとも称する)を復号するために画像復号装置31が参照するデータの集合が規定されている。ピクチャPICTは、図2の(b)に示すように、スライスS0~SNS-1を含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
スライスレイヤでは、処理対象のスライスS(対象スライスとも称する)を復号するために画像復号装置31が参照するデータの集合が規定されている。スライスSは、図2の(c)に示すように、スライスヘッダSH、および、スライスデータSDATAを含んでいる。
スライスデータレイヤでは、処理対象のスライスデータSDATAを復号するために画像復号装置31が参照するデータの集合が規定されている。スライスデータSDATAは、図2の(d)に示すように、符号化ツリーブロック(CTB:Coded Tree Block)を含んでいる。CTBは、スライスを構成する固定サイズ(例えば64×64)のブロックであり、最大符号化単位(LCU:Largest Cording Unit)と呼ぶこともある。
符号化ツリーレイヤは、図2の(e)に示すように、処理対象の符号化ツリーブロックを復号するために画像復号装置31が参照するデータの集合が規定されている。符号化ツリーユニットは、再帰的な4分木分割により分割される。再帰的な4分木分割により得られる木構造のノードのことを符号化ツリー(coding tree)と称する。4分木の中間ノードは、符号化ツリーユニット(CTU:Coded Tree Unit)であり、符号化ツリーブロック自身も最上位のCTUとして規定される。CTUは、分割フラグ(split_flag)を含み、split_flagが1の場合には、4つの符号化ツリーユニットCTUに分割される。split_flagが0の場合には、符号化ツリーユニットCTUは4つの符号化ユニット(CU:Coded Unit)に分割される。符号化ユニットCUは符号化ツリーレイヤの末端ノードであり、このレイヤではこれ以上分割されない。符号化ユニットCUは、符号化処理の基本的な単位となる。
符号化ユニットレイヤは、図2の(f)に示すように、処理対象の符号化ユニットを復号するために画像復号装置31が参照するデータの集合が規定されている。具体的には、符号化ユニットは、CUヘッダCUH、予測ツリー、変換ツリー、CUヘッダCUFから構成される。CUヘッダCUHでは、符号化ユニットが、イントラ予測を用いるユニットであるか、インター予測を用いるユニットであるかなどが規定される。符号化ユニットは、予測ツリー(prediction tree;PT)および変換ツリー(transform tree;TT)のルートとなる。CUヘッダCUFは、予測ツリーと変換ツリーの間、もしくは、変換ツリーの後に含まれる。
予測ユニットの予測画像は、予測ユニットに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測の予測パラメータもしくはインター予測の予測パラメータがある。以下、インター予測の予測パラメータ(インター予測パラメータ)について説明する。インター予測パラメータは、予測リスト利用フラグpredFlagL0、predFlagL1と、参照ピクチャインデックスrefIdxL0、refIdxL1と、ベクトルmvL0、mvL1から構成される。予測リスト利用フラグpredFlagL0、predFlagL1は、各々L0リスト、L1リストと呼ばれる参照ピクチャリストが用いられるか否かを示すフラグであり、値が1の場合に対応する参照ピクチャリストが用いられる。なお、本明細書中「XXであるか否かを示すフラグ」と記す場合、1をXXである場合、0をXXではない場合とし、論理否定、論理積などでは1を真、0を偽と扱う(以下同様)。但し、実際の装置や方法では真値、偽値として他の値を用いることもできる。2つの参照ピクチャリストが用いられる場合、つまり、predFlagL0=1, predFlagL1=1の場合が、双予測に対応し、1つの参照ピクチャリストを用いる場合、すなわち(predFlagL0, predFlagL1) = (1, 0)もしくは(predFlagL0, predFlagL1) = (0, 1)の場合が単予測に対応する。なお、予測リスト利用フラグの情報は、後述のインター予測フラグinter_pred_idxで表現することもできる。通常、後述の予測画像生成部、予測パラメータメモリでは、予測リスト利用フラグが用いれ、符号化データから、どの参照ピクチャリストが用いられるか否かの情報を復号する場合にはインター予測フラグinter_pred_idxが用いられる。
次に、参照ピクチャリストの一例について説明する。参照ピクチャリストとは、参照ピクチャメモリ306(図5)に記憶された参照ピクチャからなる列である。図3は、参照ピクチャリストの一例を示す概念図である。参照ピクチャリスト601において、左右に一列に配列された5個の長方形は、それぞれ参照ピクチャを示す。左端から右へ順に示されている符号、P1、P2、Q0、P3、P4は、それぞれの参照ピクチャを示す符号である。P1等のPとは、視点Pを示し、そしてQ0のQとは、視点Pとは異なる視点Qを示す。P及びQの添字は、ピクチャ順序番号POCを示す。refIdxLXの真下の下向きの矢印は、参照ピクチャインデックスrefIdxLXが、参照ピクチャメモリ306において参照ピクチャQ0を参照するインデックスであることを示す。
次に、ベクトルを導出する際に用いる参照ピクチャの例について説明する。図4は、参照ピクチャの例を示す概念図である。図4において、横軸は表示時刻を示し、縦軸は視点を示す。図4に示されている、縦2行、横3列(計6個)の長方形は、それぞれピクチャを示す。6個の長方形のうち、下行の左から2列目の長方形は復号対象のピクチャ(対象ピクチャ)を示し、残りの5個の長方形がそれぞれ参照ピクチャを示す。対象ピクチャから上向きの矢印で示される参照ピクチャQ0は対象ピクチャと同表示時刻であって視点が異なるピクチャである。対象ピクチャを基準とする変位予測においては、参照ピクチャQ0が用いられる。対象ピクチャから左向きの矢印で示される参照ピクチャP1は、対象ピクチャと同じ視点であって、過去のピクチャである。対象ピクチャから右向きの矢印で示される参照ピクチャP2は、対象ピクチャと同じ視点であって、未来のピクチャである。対象ピクチャを基準とする動き予測においては、参照ピクチャP1又はP2が用いられる。
インター予測フラグと、予測リスト利用フラグpredFlagL0、predFlagL1の関係は以下のように相互に変換可能である。そのため、インター予測パラメータとしては、予測リスト利用フラグを用いても良いし、インター予測フラグを用いてもよい。また、以下、予測リスト利用フラグを用いた判定は、インター予測フラグに置き替えても可能である。逆に、インター予測フラグを用いた判定は、予測リスト利用フラグに置き替えても可能である。
predFlagL0 =インター予測フラグ & 1
predFlagL1 =インター予測フラグ >> 1
ここで、>>は右シフト、<<は左シフトである。
予測パラメータの復号(符号化)方法には、マージ予測(merge)モードとAMVP(Adaptive Motion Vector Prediction、適応動きベクトル予測)モードがある、マージフラグmerge_flagは、これらを識別するためのフラグである。マージ予測モードでも、AMVPモードでも、既に処理済みのブロックの予測パラメータを用いて、対象PUの予測パラメータが導出される。マージ予測モードは、予測リスト利用フラグpredFlagLX(インター予測フラグinter_pred_idx)、参照ピクチャインデックスrefIdxLX、ベクトルmvLXを符号化データに含めずに、既に導出した予測パラメータをそのまま用いるモードであり、AMVPモードは、インター予測フラグinter_pred_idx、参照ピクチャインデックスrefIdxLX、ベクトルmvLXを符号化データに含めるモードである。なおベクトルmvLXは、予測ベクトルを示す予測ベクトルインデックスmvp_LX_idxと差分ベクトル(mvdLX)として符号化される。
ベクトルmvLXには、動きベクトルと変位ベクトル(disparity vector、視差ベクトル)がある。動きベクトルとは、あるレイヤのある表示時刻でのピクチャにおけるブロックの位置と、異なる表示時刻(例えば、隣接する離散時刻)における同一のレイヤのピクチャにおける対応するブロックの位置との間の位置のずれを示すベクトルである。変位ベクトルとは、あるレイヤのある表示時刻でのピクチャにおけるブロックの位置と、同一の表示時刻における異なるレイヤのピクチャにおける対応するブロックの位置との間の位置のずれを示すベクトルである。異なるレイヤのピクチャとしては、異なる視点のピクチャである場合、もしくは、異なる解像度のピクチャである場合などがある。特に、異なる視点のピクチャに対応する変位ベクトルを視差ベクトルと呼ぶ。以下の説明では、動きベクトルと変位ベクトルを区別しない場合には、単にベクトルmvLXと呼ぶ。ベクトルmvLXに関する予測ベクトル、差分ベクトルを、それぞれ予測ベクトルmvpLX、差分ベクトルmvdLXと呼ぶ。ベクトルmvLXおよび差分ベクトルmvdLXが、動きベクトルであるか、変位ベクトルであるかは、ベクトルに付随する参照ピクチャインデックスrefIdxLXを用いて行われる。
次に、本実施形態に係る画像復号装置31の構成について説明する。図5は、本実施形態に係る画像復号装置31の構成を示す概略図である。画像復号装置31は、エントロピー復号部301、予測パラメータ復号部302、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)306、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)307、予測画像生成部308、逆量子化・逆DCT部311、及び加算部312、残差格納部313(残差記録部)を含んで構成される。
導出された積算シフト値precShiftは、LM積算値導出部310412、LM第1パラメータ導出部310414、LM第2パラメータ導出部310415に出力される。
Y = Σy[i] 式(LM-3)
XX += Σ(x[i] * x[i])>>precShift 式(LM-4)
XY += Σ(x[i] * y[i])>>precShift 式(LM-5)
ここで、Σは、参照領域に対する和であり、参照領域の画素を特定するインデックスiに対する和を導出する。また和の前にX、Y、XY、XXは0に初期化しておく。x[i]は、隣接輝度画像のインデックスiにおける画素値。y[i]は、隣接色差画像のインデックスiにおける画素値。カウントシフト値iCountShiftは、参照領域のサイズ(画素数)の2の対数である。
なお、従来は、以下の演算により積算値XX、XYを導出していた。
XY += Σ(x[i] * y[i]) 式(LM-5´)
この場合、演算に必要なビット数は、画素のビット深度bitDepthの2倍に、参照領域のサイズの最大値の2の対数(カウントシフトiCountShiftの最大値)となる。輝度ブロックサイズの最大値が64である場合、色差ブロックサイズの最大値は32であるから、参照領域のサイズの最大値は64である。64の2の対数よりカウントシフトiCountShiftの最大値は6になる。従って必要なビット数は、bitDepth * 2 + 6になる。ここで、このビット数が32ビットで計算できる範囲を考慮すると、以下の式が得られる。
この式を解くとbitDepth <= 13が得られる。すなわち、bitDepthが13以下であれば32ビットを超えない。逆にbitDepthが13を超えると32ビットの範囲を超える。式(LM-1)は、この結果から得られたものであり、bitDepthが13を超える場合には、超えた分に相当するbitDepth - 13を積算シフト値precShiftとして導出する。さらに、式(LM-4)、式(LM-5)では予め積算シフト値precShiftだけシフトしてから加算することにより、32ビットの範囲を超えることを防ぐ効果を奏する。
式(LM-7)に示すように、XYは、カウントシフト値iCountShiftだけ左シフト、yとxの積は積算シフト値precShiftだけ右シフトしてから差を導出する。
式(LM-8)に示すように、XXは、カウントシフト値iCountShiftだけ左シフト、xとxの積は積算シフト値precShiftだけ右シフトしてから差を導出する。
{
a1 >>= 4 式(LM-10)
a2 >>= 4 式(LM-11)
}
導出された第1パラメータa1と第2パラメータa2は、LMパラメータa導出部310416に出力される。
LM第1パラメータクリップ部3104161により、a1 / a2の値は、-3から3の間にクリップされる。従って、パラメータaの値であるa1 / a2 << iShiftの値も、-(3<<iShift)から(3<<iShift)にクリップされる。すなわち、iShift=5の場合、パラメータaは-96~96となり、8ビット整数の範囲に入る。
LM第2パラメータシフト部3104163は、第2パラメータa2の大きさに応じて、以下の式により第2正規化シフト値iScaleShiftA2を導出する。導出された第2正規化シフト値iScaleShiftA2は、LMテーブルベースパラメータa導出部3104164に出力される。
LM第1パラメータシフト部3104162、LM第2パラメータシフト部3104163は、第1パラメータa1を第1正規化シフト値iScaleShiftA1、第2パラメータa2を第2正規化シフト値iScaleShiftA2により右シフトし、正規化第1パラメータa1sと正規化第2パラメータa2sを導出する。
a2s = a2 >> iScaleShiftA2 式(LM-16)
LMテーブルベースパラメータa導出部3104164は、第1正規化シフト値iScaleShiftA1と第2正規化シフト値iScaleShiftA2の差に基づいて、以下の式によりパラメータaシフト値iScaleShiftAを導出する。
LMテーブルベースパラメータa導出部3104164は、正規化第2パラメータa2sに応じて定まる逆数テーブル値invTableを参照し、正規化第1パラメータa1sとの積をとりテーブルシフト値(ScaleShiftA)で右シフトすることにより、以下の式によりパラメータaを導出する。
なお、テーブルシフト値iScaleShiftAが負の場合には、テーブルシフト値の絶対値だけ左シフトすることにより、以下の式で導出する。
パラメータaの値は、第1パラメータa1と第2パラメータa2の比(a1/a2をiShiftだけ左シフトした値に相当する)。
invTable[x] = 0 (xが0の場合) 式(T-1)
invTable[x] = Floor((M / x/2) / x) (xが0以外の場合) 式(T-2)
なお、Floor(x)は、小数点以下を切り捨てにより整数化する関数である。式(T-1)の代わりに、以下の式(T-2´)を用いても良い。すなわち、除数xの1/2倍を加える丸目調整を行わなくても良い。
逆数テーブル値invTable[]を用いることにより、a2sでの除算に相当する演算を、a2sの逆数に相当する逆数テーブル値invTable[a2s]との積と、log2(M)に相当する右シフトにより実現することができる。逆数テーブルinvTable[x]は、x=0においてinvTable[x]が0であるため、通常の演算では定義されない0での除算に相当する場合に結果が0となる。a2sは画素値x[]の分散に相当するため、画素値が非常に小さいか、乱雑さがない、つまり、全て平坦である場合に0になる。このような場合には、パラメータaを0とし、パラメータbの加算だけで計算した場合も問題のない結果が得られる。このように、逆数テーブルinvTable[x]を定義しない場合には、xが0である場合にはパラメータaを0とする別の演算を用いるか、xが0である場合には、パラメータaを1<<iShiftとすることが必要となる。なお、LM第1パラメータクリップ部3104161の代わりに、パラメータaクリップ部を設け、以下の演算によりパラメータaの範囲を、8ビット整数となる、-128以上、127以下にクリップしても良い。
なお、クリップの最大値は127以下、クリップの最小値は-128以上であれば8ビット整数となるため、他の値でも良い。例えば、
a = Clip3(-64, 64, a1) 式(LM-12´´)
などでも良い。
なお、iCountShiftの右シフトは、参照領域の画素数で割ることに相当する。
なお、LMパラメータb導出部310417の代わりに、LMパラメータb導出部310417の別の構成のLMパラメータb導出部310417´を用いても良い。この場合、隣接色差画像の画素値の和Yを固定シフト値iShiftだけ左シフトした値から、隣接輝度画像の画素値の和Xにパラメータaをかけた値を引いた値を、参照画素の数で割ることにより、以下の式によりパラメータbを導出しても良い。
図82は、LM正則化項加算部310418Eの構成を示すブロック図である。LM正則化項加算部310418Eは、LM正則化項導出部3104180E、LM第1パラメータ正則化項加算部3104181E、LM第2パラメータ正則化項加算部3104182Eから構成される。
LM第1パラメータ正則化項加算部3104181Eは、第1パラメータを導出に用いるパラメータ(例えばXY)に正則化項を加算する。
なお、この加算は、
LM第2パラメータ正則化項加算部3104182Eは、第2パラメータを導出に用いるパラメータ(例えばXX)に正則化項を加算する。
なお、正則化項の加算は、LM第1パラメータ導出部310414および、LM第2パラメータ導出部310415で行っても良い。この場合、第1パラメータ、第2パラメータは、式(LM-7)式(LM-8)の代わりに以下の式により導出される。
a2 = ( (XX + acost) << iCountShift ) - (X * X) >> precShift; 式(E-3´)
上記LMパラメータ推定部31041Eの構成では、図84に示すように、インデックスxが0の場合に0となるように逆数テーブルinvTable[x]を定義し、このように定義した、逆数テーブルinvTable[x]を、隣接輝度画像の画素値の2乗の和XXと、隣接輝度画像の画素値の和xの2乗の差から導出される第2パラメータ(正規化第2パラメータ)で引いた値に基づいてパラメータaを導出することにより、正規化第2パラメータ(第2パラメータ)が0であるか否かに応じて、演算方法を変更しなくても適当なパラメータaを得ることができるため、処理量を削減する効果が得られる。なお、インデックスxが0以外の場合には、逆数テーブルinvTable[x]は、所定の値とxで除算した値を整数化した値を用いることが適当である。
以下、LM予測部3104Eの変形例であるLM予測部3104Hを説明する。
Y = Σy[i] 式(LM-3)
ここで、Σは、参照領域に対する和であり、参照領域の画素を特定するインデックスiに対する和を導出する。y[i]は、復号画像のインデックスiにおける画素値であり、x[i]は、参照画像のインデックスiにおける画素値である。カウントシフト値iCountShiftは、参照領域のサイズ(画素数)の2の対数である。
LM第1パラメータ導出部310414Hは、隣接色差画像の画素値の和Yから第1パラメータa1を以下の式により導出する。
LM第2パラメータ導出部310415Hは、隣接輝度画像の画素値xの和Xから第2パラメータa2を以下の式により導出する。
導出された第1パラメータa1と第2パラメータa2は、LMパラメータa導出部310416Hに出力される。
ここで、ashiftは所定の定数であり、右シフトにより正則化項acostの大きさを調整するために用いられる。
LM第1パラメータ正則化項加算部3104181Eは、第1パラメータを導出に用いるパラメータ(例えばY)に正則化項を加算する。
LM第2パラメータ正則化項加算部3104182Eは、第2パラメータの導出に用いるパラメータ(例えばX)に正則化項を加算する。
なお、正則化項の加算は、LM第1パラメータ導出部310414Hおよび、LM第2パラメータ導出部310415Hで行っても良い。この場合、第1パラメータ、第2パラメータは、式(LM-7´´)、式(LM-8´´)の代わりに以下の式により導出される。
a2 = X + acost 式(LM-8´´)
図90は、LMパラメータa導出部310416Hの構成を示すブロック図である。LMパラメータa導出部310416Hは、LMパラメータクリップ部3104161H、LM第2正規化シフト部3104163H、LMテーブルベースパラメータa導出部3104164Hから構成される。
LM第2正規化シフト部3104163Hは、第2パラメータa2を第2正規化シフト値iScaleShiftA2により右シフトし、正規化第2パラメータa2sを導出する。
LMテーブルベースパラメータa導出部3104164Hは、以下の式によりパラメータaシフト値ScaleShiftAを導出する。
LMテーブルベースパラメータa導出部3104164Hは、以下の式のように、正規化第2パラメータa2sに応じて定まる逆数テーブル値invTableを参照し、正規化第1パラメータa1との積をとり、テーブルシフト値ScaleShiftAで右シフトすることにより、パラメータaを導出する。
図84は、本実施形態で用いる逆数テーブル値invTable[]である。既に説明したように図84の逆数invTable[x]は、インデックスxが0の場合に0となり、インデックスxが0以外の場合には、所定の定数M(ここでは2の15乗)をxで割って整数化した値から導出される。
なお、クリップの範囲の最小値は-128以上、最大値が127以下であれば他の値でも構わない。例えば以下の範囲等でも良い。
LMパラメータb導出部310417は、既に説明したとおり、式(LM-20)によりパラメータbを導出する。
bitDepthが8ビットである場合、predSamplesYの範囲は0から255で、(1<<(bitDepth-1))は128であるため、predSamplesY[x/2][y/2]-(1<<(bitDepth-1))は、8ビット整数の-128から127の範囲となる。パラメータaも-128から127となるようにクリップしていれば、上記画素値から所定の値を引いた値と、パラメータaとの積を、8ビット整数間の演算で処理できる。
LMパラメータクリップ部3104161Hは、既に説明したように、パラメータaの範囲を、8ビット非負変数の範囲にクリップする。
(インター予測パラメータ復号部の構成)
次に、インター予測パラメータ復号部303の構成について説明する。
参照ブロックの座標(xRef、yRef)は、対象ブロックの座標が(xP、yP)、変位ベクトルが(mvDisp[0]、mvDisp[1])、対象ブロックの幅と高さがnPSW、nPSHの場合に以下の式により導出する。
yRef = Clip3( 0, PicHeightInSamplesL- 1, yP + ( ( nPSH - 1 ) >> 1 ) + ( ( mvDisp[1] + 2 ) >> 2 ))
なお、インターレイヤマージ候補導出部3036121は、予測パラメータが動きベクトルか否かを、インター予測パラメータ復号制御部3031に含まれる後述するリファレンスレイヤ判定部303111の判定方法において偽(変位ベクトルではない)と判定した方法により判定する。インターレイヤマージ候補導出部3036121は、読みだした予測パラメータをマージ候補としてマージ候補格納部303611に出力する。また、インターレイヤマージ候補導出部3036121は、予測パラメータを導出出来なかった際には、その旨をインターレイヤ変位マージ候補導出部に出力する。本マージ候補は、動き予測のインターレイヤ候補(インタービュー候補)でありインターレイヤマージ候補(動き予測)とも記載する。
(インター予測パラメータ復号制御部の構成)
次に、インター予測パラメータ復号制御部3031の構成について説明する。インター予測パラメータ復号制御部3031は、図10に示すように、追加予測フラグ復号部30311、マージインデックス復号部30312、ベクトル候補インデックス復号部30313、及び図示しない、分割モード復号部、マージフラグ復号部、インター予測フラグ復号部、参照ピクチャインデックス復号部、ベクトル差分復号部を含んで構成される。分割モード復号部、マージフラグ復号部、マージインデックス復号部、インター予測フラグ復号部、参照ピクチャインデックス復号部、ベクトル候補インデックス復号部30313、ベクトル差分復号部は各々、分割モードpart_mode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測フラグinter_pred_idx、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLXを復号する。
変位ベクトル取得部は、対象PUに隣接するブロックが変位ベクトルを持つ場合には、その変位ベクトルを予測パラメータメモリ307から抽出し、予測パラメータメモリ307を参照し、対象PUに隣接するブロックの予測フラグpredFlagLX、参照ピクチャインデックスrefIdxLXとベクトルmvLXを読み出す。変位ベクトル取得部は、内部にリファレンスレイヤ判定部303111を備える。変位ベクトル取得部は、対象PUに隣接するブロックの予測パラメータを順に読み出し、リファレンスレイヤ判定部303111を用いて、隣接ブロックの参照ピクチャインデックスから隣接ブロックが変位ベクトルを備えるか否かを判定する。隣接ブロックが変位ベクトルを備える場合には、その変位ベクトルを出力する。隣接ブロックの予測パラメータに変位ベクトルが無い場合にはゼロベクトルを変位ベクトルとして出力する。
リファレンスレイヤ判定部303111は、入力された参照ピクチャインデックスrefIdxLXに基づいて、参照ピクチャインデックスrefIdxLXが指す参照ピクチャと、対象ピクチャの関係を示すリファレンスレイヤ情報reference_layer_infoを定める。リファレンスレイヤ情報reference_layer_infoは、参照ピクチャへのベクトルmvLXが変位ベクトルであるか動きベクトルであるかを示す情報である。
リファレンスレイヤ判定部303111は、参照ピクチャインデックスrefIdxLXが示す参照ピクチャに係る表示時刻(POC:Picture Order Count、ピクチャ順序番号)が復号対象ピクチャに係る表示時刻(POC)と等しい場合に、ベクトルmvLXが変位ベクトルであると判定する。POCは、ピクチャを表示する順序を示す番号であって、そのピクチャが取得された表示時刻を示す整数(離散時刻)である。変位ベクトルと判定しなかった場合には、リファレンスレイヤ判定部303111は、ベクトルmvLXが動きベクトルであると判定する。
ここで、POCは復号対象ピクチャのPOC、RefPOC(X, Y)は参照ピクチャインデックスX、参照ピクチャリストYで指定される参照ピクチャのPOCである。
また、リファレンスレイヤ判定部303111は、参照ピクチャインデックスrefIdxLXが示す参照ピクチャに係る視点と復号対象ピクチャに係る視点が異なる場合に、ベクトルmvLXを変位ベクトルであると判定しても良い。具体的には、参照ピクチャインデックスrefIdxLXが示す参照ピクチャのビューIDview_idが復号対象ピクチャのビューIDview_idと異なる場合に、リファレンスレイヤ判定部303111は、ベクトルmvLXが変位ベクトルであると、例えば以下の式により判定する。
ここで、ViewIDは復号対象ピクチャのビューID、RefViewID(X, Y)は参照ピクチャインデックスX、参照ピクチャリストYで指定される参照ピクチャのビューIDである。
また、リファレンスレイヤ判定部303111は、参照ピクチャインデックスrefIdxLXが示す参照ピクチャに係るレイヤIDlayer_idと復号対象ピクチャに係るレイヤIDlayer_idが異なる場合に、ベクトルmvLXが変位ベクトルであると、例えば以下の式により判定しても良い。
ここで、layerIDは復号対象ピクチャのレイヤID、ReflayerID(X, Y)は参照ピクチャインデックスX、参照ピクチャリストYで指定される参照ピクチャのレイヤIDである。レイヤIDlayer_idは、1枚のピクチャが複数の階層(レイヤ)のデータを含んで構成される場合において、それぞれのレイヤを識別するデータである。異なる視点のピクチャが符号化された符号化データにおいて、レイヤIDは、視点によって異なる値を有することに基づく。すなわち、変位ベクトルに係る差分ベクトルdvdLXは、対象ピクチャと、異なるレイヤに係るピクチャとの間で得られるベクトルである。なお、変位ベクトルと判定しなかった場合には、リファレンスレイヤ判定部303111は、ベクトルmvLXが動きベクトルであると判定する。
図11は、本実施形態に係るインター予測画像生成部309の構成を示す概略図である。インター予測画像生成部309は、動き変位補償部3091、残差予測部3092、照度補償部3093、重み予測部3094を含んで構成される。
動き変位補償部3091は、インター予測パラメータ復号部303から入力された、予測リスト利用フラグpredFlagLX、参照ピクチャインデックスrefIdxLX、動きベクトルmvLXに基づいて、参照ピクチャメモリ306から、参照ピクチャインデックスrefIdxLXで指定された参照ピクチャの対象ブロックの位置を起点として、ベクトルmvLXだけずれた位置にあるブロックを読み出すことによって動き変位補償画像を生成する。ここで、ベクトルmvLXが整数ベクトルでない場合には、動き補償フィルタ(もしくは変位補償フィルタ)と呼ばれる小数位置の画素を生成するためのフィルタを施して、動き変位補償画像を生成する。一般に、ベクトルmvLXが動きベクトルの場合、上記処理を動き補償と呼び、変位ベクトルの場合は変位補償と呼ぶ。ここでは総称して動き変位補償と表現する。以下、L0予測の動き変位補償画像をpredSamplesL0、L1予測の動き変位補償画像をpredSamplesL1と呼ぶ。両者を区別しない場合predSamplesLXと呼ぶ。以下、動き変位補償部3091で得られた動き変位補償画像predSamplesLXに、さらに残差予測および照度補償が行われる例を説明するが、これらの出力画像もまた、動き変位補償画像predSamplesLXと呼ぶ。なお、以下の残差予測および照度補償において、入力画像と出力画像を区別する場合には、入力画像をpredSamplesLX、出力画像をpredSamplesLX´と表現する。
残差予測部3092は、残差予測フラグres_pred_flagが1の場合に、入力された動き変位補償画像predSamplesLXに対して、残差予測を行う。残差予測フラグres_pred_flagが0の場合には、入力された動き変位補償画像predSamplesLXをそのまま出力する。インター予測パラメータ復号部303から入力された変位ベクトルmvDispと、残差格納部313に格納された残差refResSamplesを用いて、動き変位補償部3091で得られた動き変位補償画像predSamplesLXに対し残差予測を行う。残差予測は、予測画像生成の対象とする対象レイヤ(第2のレイヤ画像)とは異なる参照レイヤ(第1のレイヤ画像)の残差を、対象レイヤの予測した画像である動き変位補償画像predSamplesLXに加えることにより行われる。すなわち、参照レイヤと同様の残差が対象レイヤにも生じると仮定して、既に導出された参照レイヤの残差を対象レイヤの残差の推定値として用いる。ベースレイヤ(ベースビュー)では同じレイヤの画像のみが参照画像となる。従って、参照レイヤ(第1のレイヤ画像)がベースレイヤ(ベースビュー)である場合には、参照レイヤの予測画像は動き補償による予測画像であることから、対象レイヤ(第2のレイヤ画像)による予測においても、動き補償による予測画像である場合に、残差予測は有効である。すなわち、残差予測は対象ブロックが動き補償の場合に有効であるという特性を持つ。
xR1 = Clip3( 0, PicWidthInSamplesL- 1, xP + x + (mvDisp[0] >> 2 ) + 1 )
ここで、Clip3(x, y, z)は、zをx以上、y以下に制限(クリップ)する関数である。なお、mvDisp[0] >> 2は、1/4ペル精度のベクトルにおいて整数成分を導出する式である。
w1 = mvDisp[0] - ( ( mvDisp[0] >> 2 ) << 2 )
続いて、残差取得部30921は、残差格納部313から、画素R0、画素R1の残差をrefResSamplesL[ xR0, y ]、refResSamplesL[ xR1, y ]により取得する。残差フィルタ部30922は、推定残差deltaLを以下の式で導出する。
ここで、xmin=-(1<<(BitDepthY-1))、xmax = (1<<(BitDepthY-1))-1である。残差取得部30921は、参照レイヤの残差を読み出す際に、所定のビット幅に収まる範囲にクリップしてから読み出す。例えば、ビット深度をBitDepthYとする場合、refResSamplesL[ xR0, y ]、refResSamplesL[ xR1, y ]を、-(1<<(BitDepthY-1)) ~ + (1<<BitDepthY-1)-1に制限し、残差を読み出す。なお上記の説明ではビット深度に輝度のビット深度bitDepthYを用いたが、色差の残差を読み出す場合にも同様のクリップ処理を行う。この場合には、ビット深度を色差のビット深度bitDepthCに置き替えて処理を行う(以下同様)。
上記推定残差deltaLの導出後、残差フィルタ部30922は、残差予測部3092に入力された動き変位画像predSamplesLXに推定残差deltaLを加算し、動き変位画像predSamplesLX´として出力する。
上記の構成によれば、対象レイヤの残差の推定において、参照レイヤで得られた残差の値の範囲を制限して読み出す。これにより、後述する残差格納部313では、残差として、制限した範囲の値のみを格納すれば良いため、残差を記録するためのメモリ量を低下させる効果を奏する。
xxx = (xx>>(K+2))<<(K+2)
xR0 = Clip3( 0, PicWidthInSamplesL- 1, xxx)
xR1 = Clip3( 0, PicWidthInSamplesL- 1, xxx+1)
w0 = (1<<(K+2)) - (xx - xxx)
w1 = xx - xxx
deltaL = ( w0 * clip3(xmin, xmax, refResSamplesL[ xR0, (y>>K)<<K ]) + w1 * clip3(xmin, xmax, refResSamplesL[xR1, (y>>K)<<K ] + (1<<(K+1))) )) >> (K+2)
なお、上記の下位ビットを無視する関数をf(x) = (x>>K)<<Kとすると、f(x) = x&~(1<<(K-1))と表現することもできる(以下同様)。ここで~はビット否定の演算、&は論理積の演算を示す。
xxx = (xx>>K)<<K
w0 = (1<<(K) - (xx - xxx)
w1 = xx - xxx
deltaL = ( w0 * clip3(xmin, xmax, refResSamplesL[ xR0, (y>>K)<<K ]) + w1 * clip3(xmin, xmax, refResSamplesL[xR1, (y>>K)<<K ] + (1<<(K-1))) )) >> K
残差予測部3092Aは、さらにより簡易な別の構成として、座標の下位Kビットを無視する上記シフト演算により座標xR0を導出し推定残差deltaLを以下の式より求めても良い。
deltaL = clip3(xmin, xmax, refResSamplesL[ xR0, (y>>K)<<K ])
上記の構成によれば、残差の参照位置を制限して読み出すことにより、後述する残差格納部313において、参照する位置の残差のみを格納すれば良いため、残差を記録するためのメモリ量を低下させるという効果を奏する。
w1 = 4 -w0
w2 = mvDisp[1] & 3
w3 = 4 -w2
変位ベクトルmvDispが1/4ペル精度の場合、ベクトルの小数成分は下位2ビットを取得する&3の演算(これは%4の演算に等しい)で導出され、ベクトルの整数成分は、下位2ビットを除去する>>2(これは/4の演算に等しい)の演算により導出される。
(w2*(w0 * refResSample[xR0, yR0] + w1 * refResSample[xR0+1, yR0] + 2)>>2)+
w3*(w0 * refResSample[xR0, yR1] + w1 * refResSample[xR0+1, yR1] + 2)>>2)+2)>>2
refResSample[]は、残差格納部313に格納される残差であり、輝度残差取得部309212Bにより取得される。ここで、xR0, xR1, yR0, yR1は、参照先の座標を示し、変位ベクトルmvDispの整数成分に基づいて、以下の式で導出される。
xR1 = Clip3(0, PicWidthInSampleL-1, xR0 + 1)
yR0 = Clip3(0, PicHeightInSampleL-1, yP + y + (mvDisp[1]>>2))
yR1 = Clip3(0, PicHeightInSampleL-1, yR0 + 1)
輝度残差加算部309222Bは、残差予測前の予測画像predSampleLX
[]に、導出された予測残差deltaを加算し、残差予測後の予測画像predSampleLX´[]を取得する。
色差成分では、線形補間を用いず、色差残差取得部309213Bは、以下の式により、残差格納部313に格納される残差から直接、予測残差deltaCを導出する。
ここで、xRC0, yRC0,は、以下の式で導出される座標である。
yRC0 = Clip3(0, PicWidthInSampleL/4-1, yP + y + ((mvDisp[1]+4)>>3))
色差残差加算部309224Bは、残差予測前の予測画像predSampleLX[]に、導出された予測残差deltaCを加算し、残差予測後の予測画像predSampleLX´[]を取得する。
以上の構成の残差予測部3092Bによれば、予測残差の導出において、輝度成分のみ残差の線形補間を行い、色差成分では、残差の線形補間を行わないことにより、予測残差の導出に用いる処理量を削減する効果を奏する。また、線形補間を行わない場合には、補間のために必要とされた予備領域がなくなり、参照範囲が小さくなるため、残差の転送量を削減する効果を奏する。
w1 = 4 -w0
続いて、以下の式により水平方向の線形補間により、予測残差deltaを導出する。
ここで、xR0, xR1, yR0は、以下の式で導出される残差の座標である。
xR1 = Clip3(0, PicWidthInSampleL-1, xR0 + 1)
yR0 = Clip3(0, PicHeightInSampleL-1, yP + y + ((mvDisp[1]+2)>>2))
図68は、残差予測部3092Bの動作を説明するフローチャートである。
以上の構成の残差予測部3092Bによれば、予測残差の導出において、輝度成分において、水平成分に対して残差の線形補間を行い、垂直成分に対して残差の線形補間を行わない。予測残差の導出に用いる処理量を削減する効果を奏する。また、垂直方向の線形補間に必要とされた予備領域がなくなり参照範囲が小さくなるため、残差の転送量を削減する効果を奏する。
w1 = 4 -w0
w2 = mvDisp[1] & 3
w3 = 4 -w2
輝度残差補間部309221Cは、以下の式により水平方向および垂直方向の線形補間により、予測残差deltaを導出する。
(w2*(w0 * refResSampleX[xR0, yR0] + w1 * refResSampleX[xR0+1, yR0] + 2)>>2)+
w3*(w0 * refResSampleX[xR0, yR1] + w1 * refResSampleX[xR0+1, yR1] + 2)>>2)+2)>>2
refResSample[]は、輝度残差取得部309212Cにより取得される残差である。ここで、xR0, xR1, yR0, yR1は、変位ベクトルmvDispの整数成分に基づいて導出される参照先となる残差の座標である。
ここで、xmin, xmaxは以下の式を用いる。
lmax = 1<<(bitDepthY -KY)
ここでKYは定数であり1,2,3,4のいずれかであるとする。
ここで、xRC0, xRC1は既に説明した式により導出される残差の座標である。refResSampleXCは、以下の式によりクリップされた後の残差である。
ここで、cmin, cmaxは以下の式を用いる。
cmax = 1<<(bitDepthC -KC)
ここで、KCは、KC>KYを満たす整数である。
以上の構成の残差予測部3092Cによれば、予測残差の導出において、色差成分の残差に必要なビット数を削減することができるため、色差成分の残差を格納するメモリサイズを低減する効果を奏する。
w1 = 4 -w0
w2 = mvDisp[1] & 3
w3 = 4 -w2
輝度残差補間部309221Dは、以下の式により水平方向および垂直方向の線形補間により、予測残差deltaを導出する。
(w2*(w0 * refResSampleX[xR0, yR0] + w1 * refResSampleX[xR0+1, yR0] + 2)>>2)+
w3*(w0 * refResSampleX[xR0, yR1] + w1 * refResSampleX[xR0+1, yR1] + 2)>>2)+2)>>2
refResSample[]は、輝度残差取得部309212Dにより取得される残差である。ここで、xR0, xR1, yR0, yR1は、変位ベクトルmvDispの整数成分に基づいて導出される残差の座標である。
ここで、xmin, xmaxは以下の式を用いる。
lmax = 1<<(bitDepthY -KY)
ここでKYは定数であり1,2,3,4のいずれかであるとする。
色差成分では、輝度とは異なり、残差予測を行わない。
S4207 残差予測部3092Dの動作を終了
以上の構成の残差予測部3092Dによれば、予測残差の導出において、色差成分の残差を格納するメモリサイズを省略する効果を奏する。
照度補償部3093は、照度補償フラグic_enable_flagが1の場合に、入力された動き変位補償画像predSamplesLXに対して、照度補償を行う。照度補償フラグic_enable_flagが0の場合には、入力された動き変位補償画像predSamplesLXをそのまま出力する。照度補償部3093に入力される動き変位補償画像predSamplesLXは、残差予測がオフの場合には、動き変位補償部3091の出力画像であり、残差予測がオンの場合には、残差予測部3092の出力画像である。照度補償は、予測画像生成の対象となる対象ブロックに隣接する隣接領域の動き変位画像の画素値と、隣接領域の復号画像の変化が、対象ブロック内の画素値と、対象ブロックの原画との変化に類似しているとの仮定に基づいて行われる。
LC = ΣLi × Ci
L = ΣLi
C = ΣCi
a = (N*LC - L*C) / (N*CC - C*C)
b = (LL*C - LC*L) / (N*CC - C*C)
ここでΣはiに対して和をとる関数。iは0~N-1までの変数である。
k2 = Log2( (2*(nCbW >> nSidx)) >> k3 )
a1 = ( LC << k2 ) - L*C
a2 = ( LL << k2 ) - L*L
k1 = Max( 0, Log2( abs( a2 ) ) - 5 ) - Max( 0, Log2( abs( a1 ) ) - 14 ) + 2
a1s = a1 >> Max(0, Log2( abs( a1 ) ) - 14 ) a2s = abs( a2 >> Max(0, Log2( abs( a2 ) ) - 5 ) )
a3 = a2s < 1 ? 0 : Clip3( -215, 215-1, (a1s*icDivCoeff + ( 1 << ( k1 - 1 ) ) ) >> k1 )
icaidx = a3 >> Max( 0, Log2( abs( a3 ) ) -6 )
ickidx = 13 - Max( 0, Log2( abs(icaidx)) - 6)
icbidx = ( L - ( ( icaidx*C ) >> k1 ) + ( 1 << ( k2 - 1 ) ) ) >> k2
ここで、bitDepthは、画素のビット幅(通常8~12)、nCbWは、対象ブロックの幅、Max(x,y)はxとyの最大値を求める関数、Log2(x)はxの2の対数を求める関数、abs(x)はxの絶対値を求める関数である。また、icDivCoeffは、a2sを入力として所定の定数を導出する図42に示すテーブルである。
ここで、predSamplesは対象ブロック中の座標(x, y)の画素である。
また、推定パラメータが上述の整数icaidx、ickidx、icbidxの場合には次の式により求める。
以下、照度補償部3093の変形例である照度補償部3093Bを説明する。
導出された積算シフト値precShiftは、積算値導出部309312B、第1パラメータ導出部309314B、第2パラメータ導出部309315Bに出力される。
Y = Σy[i] 式(B-3)
XX += Σ(x[i] * x[i])>>precShift 式(B-4)
XY += Σ(y[i] * y[i])>>precShift 式(B-5)
ここで、Σは、参照領域に対する和であり、参照領域の画素を特定するインデックスiに対する和を導出する。y[i]は、復号画像のインデックスiにおける画素値。x[i]は、参照画像のインデックスiにおける画素値。カウントシフト値iCountShiftは、参照領域のサイズ(画素数)の2の対数である。
なお、従来は、以下の演算により積算値XX、XYを導出していた。
XY += Σ(x[i] * y[i]) 式(B-5´)
この場合、演算に必要なビット数は、画素のビット深度bitDepthの2倍に、参照領域のサイズの2の対数(カウントシフトiCountShiftの最大値)となる。ブロックサイズが最大値が64である場合、参照領域のサイズの最大値は128である。128の2の対数よりカウントシフトiCountShiftの最大値は7になる。従って必要なビット数は、bitDepth * 2 + 7になる。ここで、このビット数が32ビットで計算できる範囲を考慮すると、以下の式が得られる。
この式を解くとbitDepth <= 12が得られる。すなわち、bitDepthが12以下であれば32ビットを超えない。逆にbitDepthが12を超えると32ビットの範囲を超える。式(B-1)は、この結果から得られたものであり、bitDepthが12を超える場合には、超えた分に相当するbitDepth - 12を積算シフト値precShiftとして導出する。さらに、式(B-4)、式(B-5)では予め積算シフト値precShiftだけシフトしてから加算することにより、32ビットの範囲を超えることを防ぐ効果を奏する。
式(B-7)に示すように、XYは、カウントシフト値iCountShiftだけ左シフト、YとXの積は積算シフト値precShiftだけ右シフトしてから差を算出する。
式(B-8)に示すように、XXは、カウントシフト値iCountShiftだけ左シフト、XとXの積は積算シフト値precShiftだけ右シフトしてから差を算出する。
{
a1 >>= 4 式(B-10)
a2 >>= 4 式(B-11)
}
導出された第1パラメータa1と第2パラメータa2は、パラメータa導出部309316Bに出力される。
第1パラメータクリップ部3093161Bにより、a1 / a2の値は、0から2の間にクリップされる。従って、パラメータaの値であるa1 / a2 << iShiftの値も、0から2<<iShiftにクリップされる。すなわち、iShift=6の場合、パラメータaは0~128となり、8ビット非負整数の範囲に入る。
第2パラメータシフト部3093163Bは、第2パラメータa2の大きさに応じて、以下の式により第2正規化シフト値iScaleShiftA2を導出する。導出された第2正規化シフト値iScaleShiftA2は、テーブルベースパラメータa導出部3093164Bに出力される。
第1パラメータシフト部3093162B、第2パラメータシフト部3093163Bは、第1パラメータa1を第1正規化シフト値iScaleShiftA1、第2パラメータa2を第2正規化シフト値iScaleShiftA2により右シフトし、正規化第1パラメータa1sと正規化第2パラメータa2sを導出する。
a2s = a2 >> iScaleShiftA2 式(B-16)
テーブルベースパラメータa導出部3093164Bは、第1正規化シフト値iScaleShiftA1と第2正規化シフト値iScaleShiftA2の差に基づいて、以下の式によりパラメータaシフト値iScaleShiftAを導出する。
テーブルベースパラメータa導出部3093164Bは、正規化第2パラメータa2sに応じて定まる逆数テーブル値invTableを参照し、正規化第1パラメータa1sとの積をとりテーブルシフト値(ScaleShiftA)で右シフトすることにより、以下の式によりパラメータaを導出する。
なお、テーブルシフト値iScaleShiftAが負の場合には、テーブルシフト値の絶対値だけ左シフトすることにより、以下の式で導出する。
図84は、本実施形態で用いる逆数テーブル値invTable[]である。既に説明したように図84の逆数invTable[x]は、インデックスxが0の場合に0となり、インデックスがxが0以外の場合には、所定の定数(ここでは2の15乗)Mをxで割って整数化した値から導出される。
なお、クリップの最大値は255以下、クリップの最小値は0以上であれば8ビット非負変数となるため、他の値でも良い。例えば、
a = Clip3(64, 128, a) 式(B-12´´)
や、
a = Clip3(0, 128, a) 式(B-12´´´)
などでも良い。但し、クリップの最大値は、1<<iShift以上とする。
なお、iCountShiftの右シフトは、参照領域の画素数で割ることに相当する。
なお、パラメータb導出部309317Bの代わりに、パラメータb導出部309317Bの別の構成パラメータb導出部309317B´を用いても良い。この場合、復号画像の画素値の和Yを固定シフト値iShiftだけ左シフトした値から、参照画像の画素値の和Xにパラメータaをかけた値を引いた値を、参照画素の数で割ることにより、以下の式によりパラメータbを導出しても良い。
なお、画素のビット深度が8ビットの場合、画素値xの範囲は8ビット非負変数、パラメータaの範囲も8ビット非負変数の範囲となる、従ってソフトウェアでは最小のビット数である8ビット非負変数(C言語ではunsigned char)同士の演算で演算可能である。8ビット非負変数は、例えば128ビットレジスタを用いるSIMD演算において、16個同時にレジスタに格納し演算することができる。すなわち、16画素同時に処理することができるため、高速化の効果を奏する。
以下、上記の構成の特徴をまとめる。
共通シフト部3093162Cは、第2パラメータa2の大きさに応じて、以下の式により共通正規化シフト値iScaleShiftA2を導出する。
共通シフト部3093162Cは、第1パラメータa1と第2パラメータa2を同じ、共通正規化シフト値iScaleShiftA2により右シフトし、正規化第1パラメータa1sと正規化第2パラメータa2sを導出する。
a2s = a2 >> iScaleShiftA2 式(B-16)
ここで、第1パラメータa1の正規化においては以下の式のように予め固定値であるa1シフト値ShiftA1(ここでは4)だけ左シフトしても良い。
テーブルベースパラメータa導出部3093164Cは、正規化第2パラメータa2sに応じて定まる逆数テーブル値invTableを参照し、正規化第1パラメータa1sとの積をとりテーブルシフト値(ここでは15-iShift)で右シフトすることにより、以下の式によりパラメータaを導出する。
ここでiShiftは固定シフト値(ここでは7)とする。aの値は、第1パラメータa1と第2パラメータa2の比(a1/a2をiShiftだけ左シフトした値に相当する)。
以下、上記の構成の特徴をまとめる。
照度パラメータ推定部30931Dは、積算シフト値導出部309311B、積算値導出部309312B、加算値導出部309313B、第1パラメータ導出部309314D、第2パラメータ導出部309315B、パラメータa導出部309316B、パラメータb導出部309317Bから構成される。第1パラメータ導出部309314D以外の構成要素は既に説明した通りであるので説明を省略する。
a = (16*a1 >= 17*a2) ? 17 : 16; 式(B-19´´´)
なお、上記で(x) ? y : zは、式xが真の場合には y、偽の場合にはzを導出する関数である。
上記照度パラメータ推定部30931Dの構成では、復号画像の画素値と参照画像の画素値の積の和XYと、復号画像の画素値の和Yと参照画像の画素値の和Xの積から導出される第1パラメータa1から導出される値と、参照画像の画素値の2乗の和XXと、参照画像の画素値の和Xの2乗から導出される第2パラメータa2から導出される値との比較により、パラメータaを導出する。パラメータa導出部309316Dでは、第1パラメータによる第2パラメータの商に相当するパラメータaを導出する際に、テーブルベースパラメータa導出部3093164B、テーブルベースパラメータa導出部3093164Cで説明した式(B-19)、式(B-19´)、式(B-19´´)にあるような第2パラメータの逆数をテーブルinvTable[]を用いて導出する必要が無いため処理が容易になる効果を奏する。また、第2パラメータa2の逆数を所定のサイズのテーブルを用いて導出するためには、通常は、第2パラメータシフト部3093163B、共通シフト部3093162Cで説明したように、式(B-16)に示すような第2パラメータを所定の範囲に抑えるための正規化が必要になるが、上記比較による方法では正規化処理が不要となる効果を奏する。また、第1パラメータと第2パラメータの逆数の積が所定の値を超えないためには、通常は、第1パラメータシフト部3093162B、共通シフト部3093162Cで説明したように、式(B-15)、式(B-15´)に示すような第1パラメータの正規化処理も必要であるが、上記比較による方法では不要になる効果を奏する。
以下、照度補償部3093の変形例である照度補償部3093Eを説明する。
なお、ashiftは例えば発明者らの実験では4~8の固定値が好適であることが確認されている。
なお、この加算は、
第2パラメータ正則化項加算部3093182Eは、第2パラメータを導出に用いるパラメータ(例えばXX)に正則化項を加算する。
なお、正則化項の加算は、第1パラメータ導出部309314Bおよび、第2パラメータ導出部309315Bで行っても良い。この場合、第1パラメータ、第2パラメータは、式(B-7)式(B-8)の代わりに以下の式により導出される。
a2 = ( (XX + acost) << iCountShift ) - (X * X) >> precShift; 式(E-3´)
上記照度パラメータ推定部30931Eの構成では、復号画像の画素値yと参照画像の画素値xの積の和XYと、復号画像の画素値の和Yと参照画像の画素値の和Xの積の差から導出される第1パラメータa1を導出する際に、正則化項acostを加算し、さらに、参照画像の画素値の2乗の和XXと、参照画像の画素値の和Xの2乗の差から導出される第2パラメータa2を導出する際に同じ正則化項acostを加算する。正則化項が加算された第1パラメータa1と第2パラメータa2からパラメータaを導出する。これにより、線形予測の傾き成分に相当するパラメータaが実質的に1に近くなる(実際には固定シフト値iShiftを用いて、1<<iShiftに近くなる)ことにより、外れ値などがある場合において、推定されるパラメータが頑健になる。推定されるパラメータが頑健になることによって、照度補償の推定精度が向上し、符号化効率が向上する効果を奏する。
以下、正則化項の数学的意味を補足する。入力データ列(xi,yi)が与えられた場合に、xiからyiを以下の式により1次予測することを考える。
この時、以下の予測誤差E(目的関数E)を最小化するパラメータa、パラメータbを最小2乗法により求めることが一般に行われる。
上記式を、パラメータa、パラメータbに関して各々偏微分を行って得られる式を0と置くと、予測誤差Eを最小化するパラメータa、パラメータbに関する式である正規方程式が求められる。正規方程式を解くと、パラメータaを導出する以下の式が得られる。
一般に、入力データ列(xi,yi)にばらつきが有る場合には、導出対象となるパラメータa、パラメータbが不要に大きくなることを防ぐような正則化項を導入することが行われる。この場合、予測誤差Eの代わりに、誤差E´を最小化する。
この場合、パラメータaは以下の式により求められる。
ところで、照度予測の場合には、xi、yiはともに同じオブジェクトの画素値であることから、パラメータaは1に近いことが予想される。従って、単純にパラメータaの大きさを0に近づけるような正則化項(λ1*a^2)を用いる予測誤差E´の代わりに、パラメータaの大きさを1に近づけるような正則化項(λ1*(a-1)^2)を用いる以下の予測誤差E´´を最小化することを考える。
上記式を、パラメータa、パラメータbに関して各々偏微分を行って得られる式を0と置くと、正規方程式が求められる。正規方程式を解くと、パラメータaを導出する以下の式が得られる。
上記式の右辺において、分子のΣxiyi -ΣxiΣyiが第1パラメータ、分母のΣxixi -ΣxiΣxiが第2パラメータに相当する。従って、第1パラメータ、第2パラメータに同じ正則化項λ1を加えることにより、パラメータaを1に近づける効果が得られる。なお、上記正則化項の効果は、a-1の2乗に比例することから、aが1から大きく遠ざかるほど強くなり、aが1に近い場合には殆ど正則化項の影響はなくなる。
以下、照度補償部3093の変形例である照度補償部3093Fを説明する。
predFlagL0が0、predFlagL1が1の場合には、照度補償は適用しない。すなわち、以下の式のように照度補償フィルタ部30932Fの入力となる予測画像predSamples []と出力の予測画像predSamples´[]は一致する。
predFlagL0が1、predFlagL1が1の場合には、以下の式により、L0リストの参照ピクチャを予測画像する場合には、以下の式により、L0の照度補償前の予測画像predSamples L0 []から、L0の照度補償後の予測画像predSamples L0´[]を導出する。
後述の重み予測部3094では、照度予測が適用されたL0の予測画像と、predSamplesL0´[x][y]と、照度予測が適用されないL1の予測画像predSamplesL1[x][y]とを用いて、例えば、以下の式により、予測画像が生成される。
ここでshift2、offset2は各々、shift2=15 - bitDepth、offset2=1<<(shift2-1)により導出する。
なお、L0の予測画像predSamplesL0[x][y]であることを明示して、以下のように表現も可能である。
predFlagL0が0、predFlagL1が1の場合には、以下の式により、照度補償前の予測画像predSamples []から、照度補償後の予測画像predSamples´[]を導出する。
なお、L1の予測画像predSamplesL1[x][y]であることを明示して、以下のように表現も可能である。
predFlagL0が1、predFlagL1が1の場合には、後述の重み予測部3094において、照度予測が適用されないL0の予測画像predSamplesL0[x][y]と、照度予測が適用されないL1の予測画像predSamplesL1[x][y]とを用いて、例えば、以下の式により、予測画像が生成される。
この場合は、双予測の場合には照度予測が行われないが、2つの参照画像に照度予測が行われるような処理量の大きい状況を避ける効果(効果F5b)を有する。
以下、照度補償部3093の変形例である照度補償部3093Gを説明する。照度補償部3093Gは、照度補償部3093Fと同様、L0制限を行うが、照度補償の予測式がオフセット成分のみ(パラメータbのみ)である点が、照度補償部3093Fとは異なる。
照度パラメータ推定部30931Gは、図13に示す参照レイヤ画像上の参照ブロックの周囲の画素Cを参照画像の画素値x[]、対象ブロックの周囲の画素Lを復号画像の画素値y[]とし、これら参照画像の画素値x[]と復号画像の画素値y[]に基づいて、復号画像の画素値y[]を参照画像の画素値xからオフセットを加算して予測する場合のパラメータであるパラメータbを導出する。
なお、iCountShiftの右シフトは、参照領域の画素数で割ることに相当する。
predFlagL0が0、predFlagL1が1の場合には、照度補償は適用しない。すなわち、以下の式のように照度補償フィルタ部30932Gの入力となる予測画像predSamples []と出力の予測画像predSamples´[]は一致する。
predFlagL0が1、predFlagL1が1の場合には、以下の式により、L0リストの参照ピクチャを予測画像する場合には、以下の式により、L0の照度補償前の予測画像predSamples L0 []から、L0の照度補償後の予測画像predSamples L0´[]を導出する。
後述の重み予測部3094では、照度予測が適用されたL0の予測画像と、predSamplesL0´[x][y]と、照度予測が適用されないL1の予測画像predSamplesL1[x][y]とを用いて、例えば、以下の式により、予測画像が生成される。
ここでshift2、offset2は各々、shift2=15 - bitDepth、offset2=1<<(shift2-1)により導出する。
なお、L0の予測画像predSamplesL0[x][y]であることを明示して、以下のように表現も可能である。
predFlagL0が0、predFlagL1が1の場合には、以下の式により、照度補償前の予測画像predSamples []から、照度補償後の予測画像predSamples´[]を導出する。
なお、L1の予測画像predSamplesL1[x][y]であることを明示して、以下のように表現も可能である。
predFlagL0が1、predFlagL1が1の場合には、後述の重み予測部3094において、照度予測が適用されないL0の予測画像predSamplesL0[x][y]と、照度予測が適用されないL1の予測画像predSamplesL1[x][y]とを用いて、例えば、以下の式により、予測画像が生成される。
この場合は、双予測の場合には照度予測が行われないが、2つの参照画像に照度予測が行われるような処理量の大きい状況を避ける効果(効果F5c)を有する。
以下、照度補償部3093の変形例である照度補償部3093Hを説明する。
Y = Σy[i] 式(B-3)
ここで、Σは、参照領域に対する和であり、参照領域の画素を特定するインデックスiに対する和を導出する。y[i]は、復号画像のインデックスiにおける画素値であり、x[i]は、参照画像のインデックスiにおける画素値である。カウントシフト値iCountShiftは、参照領域のサイズ(画素数)の2の対数である。
第1パラメータ導出部309314Hは、復号画像の画素値yの和Yから第1パラメータa1を以下の式により導出する。
第2パラメータ導出部309315Hは、参照画像の画素値xの和Xから第2パラメータa2を以下の式により導出する。
導出された第1パラメータa1と第2パラメータa2は、パラメータa導出部309316Hに出力される。
ここで、ashiftは所定の定数であり、右シフトにより正則化項acostの大きさを調整するために用いられる。
正則化項加算部309318Eは、第1パラメータを導出に用いるパラメータ(例えばY)に正則化項を加算する。
なお、この加算は、
正則化項加算部309318Eは、第2パラメータを導出に用いるパラメータ(例えばX)に正則化項を加算する。
なお、正則化項の加算は、第1パラメータ導出部309314Bおよび、第2パラメータ導出部309315Bで行っても良い。この場合、第1パラメータ、第2パラメータは、式(B-7´)式(B-8´)の代わりに以下の式により導出される。
図86は、パラメータa導出部309316Hの構成を示すブロック図である。パラメータa導出部309316Hは、パラメータクリップ部3093161H、第2正規化シフト部3093163H、テーブルベースパラメータa導出部3093164Hから構成される。
第2正規化シフト部3093163Hは、第2パラメータa2を第2正規化シフト値iScaleShiftA2により右シフトし、正規化第2パラメータa2sを導出する。
テーブルベースパラメータa導出部3093164Hは、以下の式によりパラメータaシフト値iScaleShiftAを導出する。
テーブルベースパラメータa導出部3093164Hは、正規化第2パラメータa2sに応じて定まる逆数テーブル値invTableを参照し、正規化第1パラメータa1との積をとりテーブルシフト値(ScaleShiftA)で右シフトすることにより、以下の式によりパラメータaを導出する。
図84は、本実施形態で用いる逆数テーブル値invTable[]である。既に説明したように図84の逆数invTable[x]は、インデックスxが0の場合に0となり、インデックスxが0以外の場合には、所定の定数M(ここでは2の15乗)をxで割って整数化した値から導出される。
パラメータb導出部309317Hは、復号画像の画素値の和Yから、参照画像の画素値の和Xにパラメータaをかけて固定シフト値iShiftだけ右シフトした値を引いた値を、参照領域の画素数で割ることにより、以下の式によりパラメータbを導出する。
なお、iCountShiftの右シフトは、参照領域の画素数で割ることに相当する。固定シフト値としては4から7の値、例えば5を用いることが適当である。
上記照度パラメータ推定部30931Hの構成では、同じ正則化項を第1パラメータa1と第2パラメータa2に加算してから、第1パラメータa1と第2パラメータa2の比に相当する値のパラメータaを算出することによって、外れ値などがある場合において、推定されるパラメータが頑健になり、符号化効率が向上する効果を奏する。なお、正則化項は、参照画像の画素値xの和Xから生成しても良いし、復号画像の画素値yの和Yから生成しても良い。
パラメータクリップ部3093161Hは、既に説明したように、パラメータaの範囲を、8ビット非負変数の範囲にクリップする。
重み予測部3094は、入力される動き変位画像predSamplesLXに重み係数を乗算することにより予測ピクチャブロックP(予測画像)を生成する。入力される動き変位画像predSamplesLXは、残差予測、照度補償が行われる場合には、それらが施された画像である。参照リスト利用フラグの一方(predFlagL0もしくはpredFlagL1)が1の場合(単予測の場合)で、重み予測を用いない場合には入力された動き変位画像predSamplesLX(LXはL0もしくはL1)を画素ビット数に合わせる以下の式の処理を行う。
ここで、shift1=14-bitDepth、offset1=1<<(shift1-1)である。
ここで、shift2=15-bitDepth、offset2=1<<(shift2-1)である。
ここで、log2WDは所定のシフト量を示す変数である。
(追加予測フラグを含む符号化データの構成)
図14(a)は、インター予測パラメータ復号制御部3031で復号される符号化データの構成(符号化ユニットの構成)を示す図である。図14(a)に示すように、追加予測フラグxpred_flagは、符号化ユニット(CU)構造で、PredMode、SkipFlagの後の、予測ユニットPUの後に符号化される。追加予測フラグxpred_flagは、追加予測フラグxpred_flagより前に位置する予測ユニットのシンタックス要素により指定される各PUの予測パラメータが所定の値である場合に、符号化データ中に存在する。逆に所定の値ではない場合には存在しない。
図16は、追加予測フラグ判定部30314の構成を示す概略図である。追加予測フラグ判定部30314は、レイヤ判定部303141、全PUパラメータ判定部303142を含んで構成される。レイヤ判定部303141は、対象レイヤが、ベースレイヤ(ベースビュー)であるか、ベースレイヤ(ベースビュー)でないかを判定し、さらに、対象レイヤが、デプスであるか、テクスチャであるかを判定する。レイヤ判定部303141は、対象レイヤがベースレイヤ(ベースビュー)ではなく、かつ、デプスではない場合に有効と判定し、それ以外は無効と判定する。ベースビューではないかの判定はViewIdが0ではない(ViewId)、デプスではない場合とは!depth_flagで示されることから、図15の符号化データのSE1501、SE1502に示す!depth_flag && ViewIdの判定を行う。さらに、全PUパラメータ判定部303142は、追加予測フラグを含む対象CUがイントラ予測ではないか、を判定する。すなわち図15のSE1501、SE1502に示すpred_mode != MODE_INTRAの判定を行う。次に、全PUパラメータ判定部303142は、対象CUが含む全てのPUの予測パラメータを調べ、予測パラメータの値に応じて、上記追加予測フラグを上記符号化ユニットから復号するか否かを判定する。具体的には、追加予測フラグxpred_flagが残差予測resi_pred_flagの場合には、予測パラメータが動き予測であるか(CUに含まれるPUのいずれかが動き予測を含むか)を判定しmotion_pred_existsに設定する。なお、PUが動き予測であるか、すなわち、PUのベクトルが動きベクトルか否かは、既に説明したインター予測パラメータ復号制御部3031に含まれるリファレンスレイヤ判定部303111の判定方法において偽(変位ベクトルではない)と判定した方法により判定する(以下同様)。追加予測フラグxpred_flagが照度補償ic_enable_flagの場合には予測パラメータが変位予測であるか(CUに含まれるPUのいずれかが変位予測を含むか)を判定しdisparity_pred_existsに設定する。なお、PUが変位予測であるか、すなわち、PUのベクトルが変位ベクトルか否かは、既に説明したインター予測パラメータ復号制御部3031に含まれるリファレンスレイヤ判定部303111の判定方法において真(変位ベクトルである)と判定した方法により判定する(以下同様)。
以下、インター予測パラメータ復号部303の変形例として、インター予測パラメータ復号部303Aを説明する。変形例Aは、動き補償画像に適用する追加予測として2つの予測方法を用いる場合において、1つ目の予測を示すフラグがオンの場合に、2つ目の予測を示すフラグを符号化データから復号せずにオフであるとして導出する。インター予測パラメータ復号部303Aは、追加予測フラグ復号部30311A、マージインデックス復号部30312、ベクトル候補インデックス復号部30313を備える。図19は、追加予測フラグ復号部30311Aが復号する符号化データの構成を示すためのシンタックステーブルである。追加予測フラグ判定部30314Aは、追加予測フラグとして2つのフラグを用いる場合(ここでは残差予測フラグres_pred_flagと照度補償フラグic_enable_flagを用いる場合)、図19のSE1901に示すように、1つ目のフラグがオン(ここではres_pred_flagが1)である場合に、図19のSE1902の判定res_pred_flag == 0が示すように、2つ目のフラグ(ここではic_enable_flag)が符号化データに存在しない、と判定する。なおres_pred_flag == 0の判定は!res_pred_flagの判定と同値である。追加予測フラグ復号部30311Aは、2つ目のフラグic_enable_flagの復号を行わない場合、2つ目のフラグic_enable_flagを追加予測を行わないことを示す0と導出する。これにより、インター予測パラメータ復号部303Aで必要としたCUが変位予測を含むPUを含むか否かのフラグdisparity_pred_existsの導出が不要になる。なお、図19では、残差予測フラグres_pred_flagを照度補償フラグic_enable_flagよりも先に符号化したが、この順序を入れ替えても良い。この場合、追加予測フラグ判定部30314Aは、1つ目の追加予測フラグ(ここでは照度補償フラグic_enable_flag)がオン(ここでは1)である場合に、2つ目の追加予測フラグ(ここでは残差予測フラグres_pred_flag)は存在しないと判定し、2つ目のフラグであるres_pred_flagを0と導出する。つまり、ic_enable_flag==0の場合に限りres_pred_flagを符号化データから復号する。
以下、インター予測パラメータ復号部の変形例として、インター予測パラメータ復号部303A2を説明する。インター予測パラメータ復号部303A2は、追加予測フラグ復号部30311A2、マージインデックス復号部30312、ベクトル候補インデックス復号部30313を備える。
以下、インター予測パラメータ復号部の変形例として、インター予測パラメータ復号部303Bを説明する。インター予測パラメータ復号部303Bは、追加予測フラグ復号部30311B、マージインデックス復号部30312、ベクトル候補インデックス復号部30313を備える。図21は、インター予測パラメータ復号部303Bの復号する符号化データの構成を示すためのシンタックステーブルである。図15との違いは、図15(SE1501、SE1502)では、追加予測フラグが存在するか否かを示す判定に用いるフラグがCUを構成するPUのいずれかの予測方法に関するフラグmotion_pred_existsとdisparity_pred_existsであるのに対し、図21(SE2101、SE2102)では、各々、第1PU(PU0)の予測方法に関するフラグpu0_is_motion_pred、pu0_is_disparity_predに変更された点である。
追加予測フラグ復号部30311Bは、既に説明した追加予測フラグ判定部30314の代わりに、追加予測フラグ判定部30314Bを備える。図22は、追加予測フラグ判定部30314Bの構成を示す概略図である。追加予測フラグ判定部30314Bは、レイヤ判定部303141、PU0パラメータ判定部303142Bから構成される。レイヤ判定部303141は、既に説明したので説明を省略する。PU0パラメータ判定部303142Bは、追加予測フラグを含む対象CUがイントラ予測ではないか、を判定する。すなわちpred_mode != MODE_INTRAの判定を行う。次に、PU0パラメータ判定部303142Bは、対象CUに含まれる最初のPU(PU0)の予測パラメータを調べ、追加予測フラグxpred_flagが残差予測フラグresi_pred_flagの場合にはPU0が動き予測を含むか否かを示す判定pu0_is_motion_predを行い、追加予測フラグxpred_flagが照度補償フラグic_enable_flagの場合にはPU0が変位予測を含むか否かの判定pu0_is_disparity_predを行う。図23(a)、(b)は各々、追加予測フラグ判定部30314Bにおいてpu0_is_motion_pred、pu0_is_disparity_pred_の判定を行う動作を示す図である。図17、図18と異なり、CUに含まれる全てのPUについて判定を行うことなく、PU0、すなわち、座標が(x0, y0)のPUに関する判定のみを行う。PU0に動き予測が含まれるか否かpu0_is_motion_predの判定は、参照ピクチャのビューID(ref_viewid_lX)が対象レイヤのビューID(ViewId)と等しい場合に1、等しくない場合に0とする判定であり、PU0に動き予測が含まれるか否かpu0_is_disparity_predの判定は、ref_viewid_lXがViewIdが異なる場合に1、等しくない場合に0とする判定である。詳細は図17、図18と同様であるため説明を省略する。
以下、インター予測パラメータ復号部の変形例として、インター予測パラメータ復号部303Cを説明する。インター予測パラメータ復号部303Cは、追加予測フラグ復号部30311C、マージインデックス復号部30312、ベクトル候補インデックス復号部30313を備える。図24は、インター予測パラメータ復号部303Cの復号する符号化データ中の構成を示すためのシンタックステーブルである。図15(SE1501、SE1502)および図21(SE2101、SE2102)では、残差予測フラグres_pred_flagと照度補償フラグic_enable_flagは個別のフラグを用いていたが、図24では、SE2401に示すように残差予測と照度補償のオンオフを判定するために一つの共用フラグres_pred_and_ic_enable_flagを用いる。また、図15および図21では、追加予測フラグが存在するか否かを示す判定式においてmotion_pred_exists、disparity_pred_exists、pu0_is_motion_pred、pu0_is_disparity_predのようなPUが動き補償や変位予測を行うか否かを示す判定を用いていたが、図24には追加予測フラグが存在するか否かを示す判定式においてPUの予測パラメータに関する判定を用いない。つまり、図24のSE2401では、!depth_flag && ViewId && PredMode != MODE_INTRAと示すように、対象レイヤがデプスであるか否かを示すdepth_flagと、ビューIDを示すViewIdと、対象CUの予測モードPredModeを用いて判定するが、これらは個々のPUの予測パラメータ(ベクトルや参照ピクチャインデックス)を用いずに判定できる要素であり、PUの予測パラメータに関する判定を用いない。
図25は、追加予測フラグ復号部30311Cの構成を示す概略図である。追加予測フラグ復号部30311Cは、追加予測フラグ判定部30314C、残差予測判定部30315、照度補償判定部30316を含んで構成される。追加予測フラグ判定部30314Cは、レイヤ判定部303141を含んで構成される。フラグ判定部30314Cは、レイヤ判定部303141により、対象レイヤがベースレイヤ(ベースビュー)ではなく、かつ、デプスではないと判定する。さらに、追加予測フラグ判定部30314Cは、対象CUがイントラ予測ではない場合に、追加予測フラグである共用フラグres_pred_and_ic_enable_flagが符号化データに含まれると判定する。
以下、インター予測パラメータ復号部の変形例として変形例Dの別の構成であるインター予測パラメータ復号部303Dを説明する。インター予測パラメータ復号部303Dは、追加予測フラグ復号部30311D、マージインデックス復号部30312、ベクトル候補インデックス復号部30313を備える。
図28は、追加予測フラグ復号部30311D2の別の構成を示す概略図である。追加予測フラグ復号部30311D2は、追加予測フラグ判定部30314の代わりに、追加予測フラグ判定部30314D2を含む。また、追加予測フラグ判定部30314D2は、レイヤ判定部303141とインデックス判定部303143を含んで構成される。インデックス判定部303143は、マージインデックスmerge_idxが所定の値であるか否かを判定する。具体的には、マージインデックスmerge_idxがインターレイヤ予測(インタービュー予測)で得られる予測パラメータを主に用いるインデックス(インターレイヤ予測のマージ候補)であるか否かを判定する。インターレイヤ予測(インタービュー予測)がmerge_idx=0に割り当てられる場合、merge_idx=0であるか否かが判定される。マージインデックスmerge_idxが所定の値である場合、追加予測フラグ(ここではres_pred_flag)が存在すると判定される。
以下、インター予測パラメータ復号部の別の変形例として変形例Dの別の構成であるインター予測パラメータ復号部303D3を説明する。
以下、インター予測パラメータ復号部の別の変形例として変形例Dの別の構成であるインター予測パラメータ復号部303D4を説明する。
以下、画像復号装置31の変形例を説明する。以下の変形例では、インター予測パラメータ復号部303の代わりに、インター予測パラメータ復号部303Eを備え、インター予測パラメータ復号制御部3031の代わりにインター予測パラメータ復号制御部3031Eを、マージ予測パラメータ導出部3036の代わりにマージ予測パラメータ導出部3036Eを備える。それ以外の手段は、インター予測パラメータ復号部303と同じであるため説明を省略する。
以下、インター予測パラメータ復号部の変形例としてインター予測パラメータ復号部303F1を説明する。変形例F1では、追加予測として照度予測を行う場合を扱う。図43は、インター予測パラメータ復号部303F1の構成を示すブロック図である。図43に示すように、インター予測パラメータ復号部303F1は、照度補償フラグ復号部30311F1、分割モード復号部、マージフラグ復号部30317、マージインデックス復号部30312、インター予測フラグ復号部、参照ピクチャインデックス復号部30318、ベクトル候補インデックス復号部30313、ベクトル差分復号部を備える。
S1101:マージフラグmerge_flagを参照し、対象ブロックがマージモードであるか否か(merge_flagが1であるか否か)を判定する。対象ブロックがマージモードであれば(merge_flag=1)、符号化データから、照度補償フラグic_flagを復号する(S1105)。マージモードでなければ(merge_flag=0)、S1104に遷移する。マージフラグ復号部30317で復号される(以下同様)。
S1104:参照ピクチャインデックスref_idx_LXを参照し、対象ブロックがインターレイヤ予測(インタービュー予測)であるかを判定する。以下、インタービュー予測とインターレイヤ予測を区別せず、単にインタービュー予測と表記する。インターレイヤ予測であれば、符号化データから照度補償フラグic_enable_flagを復号する(S1105)。そうでなければ、ic_enable_flagに照度補償を行わないことを示す値である00を設定する(S1106)。マージモード以外のref_idx_LXは、参照ピクチャインデックス復号部30318において符号化データから復号される(以下同様)。
具体的には、
スライス単位の照度補償フラグslice_ic_enable_flagの条件(SF1001)は以下の式で示される。
マージモードであるか否かの条件(SF1002)は、以下の式で示される。
マージモード以外(AMVPモード)であり、参照ピクチャインデックスがインターレイヤ予測を示す条件(SF1003)は、以下の式で示される。
なお、anyIvRefPicFlagは、対象ブロック(対象CU)にインターレイヤ予測(インタービュー予測)が含まれるか否かを示すフラグであり、以下の式をX=0、X=1に対して実行することで導出される(Y=1-X)
anyIvRefPicFlag = anyIvRefPicFlag | |
(inter_pred_idc[ x0 ][ y0 ] ! = Pred_LY && refViewIdxLX[ x0 ][ y0 ] ! = ViewIdx) | |
(inter_pred_idc[ x0 ][ y1 ] ! = Pred_LY && refViewIdxLX[ x0 ][ y1 ] ! = ViewIdx) | |
(inter_pred_idc[ x1 ][ y0 ] ! = Pred_LY && refViewIdxLX[ x1 ][ y0 ] ! = ViewIdx) | |
(inter_pred_idc[ x1 ][ y1 ] ! = Pred_LY && refViewIdxLX[ x1 ][ y1 ] ! = ViewIdx) 式(F-4)
ここで、x1、y1は、対象CUに複数の予測ユニットが含まれている場合における予測ユニットの座標を示す。具体的には、座標[x0][x0]が1つ目の予測ユニット、座標[x0][y1]が2つ目の予測ユニット、座標[x1][y0]が3つ目の予測ユニット、座標[x1][y1]が3つ目の予測ユニットに対応する。インター予測フラグinter_pred_idc[][]は、予測ユニットの予測方向を示し、L0予測(Pred_L0)、L1予測(Pred_L1)、双予測(Pred_BI)の何れかである。従って、インター予測フラグinter_pred_idc[][]がPred_LYではないとは、X=Y-1であるから、Pred_LXもしくはPred_BIの場合を意味する。両者ともLX予測を用いる。
refViewIdxLX[][] ! = ViewIdx)の式は、LXの参照ピクチャインデックスで指定される参照ピクチャのビューIDが対象ピクチャのビューIDと異なるか(インターレイヤ予測が用いられるか)の判定である。ここでは、インターレイヤ予測が用いられるかの判定として、ビューIDを用いる第2の判定方法を用いる。上記式(F-4)内では、座標[x][y]、LX予測で指定される予測ユニットにおいて、インターレイヤ予測が行われているかを示す式を、以下の式(F-5)とすると、対象CU内の予測ユニットに関する式(F-5)の論理和として定義される。
inter_pred_idc[ x][ y ] ! = Pred_LY && refViewIdxLX[ x ][ y ] ! = ViewIdx) 式(F-5)
なお、refViewIdxLX[ x ][ y ]は、座標[x][y]の予測ユニットがLXリストを用いて参照する参照ピクチャのビューIDを示す。LX予測の参照ピクチャリストがRefPicListLXであり、参照ピクチャインデックスがref_idx_lX[ x ][ y ]である場合、refViewIdxLX[ x0 ][ y ]は、以下の式で導出可能である。
なお、インター予測フラグinter_pred_idcと予測リストフラグpredFlagLXは相互に対応するため、インターレイヤ予測が用いられるか否かの判定式として、式(F-4)の代わりに、式(F-4´)を用いることもできる。
(predFlagLX[ x0 ][ y0 ] == 1 && refViewIdxLX[ x0 ][ y0 ] ! = ViewIdx) ||
(predFlagLX[ x0 ][ y1 ] == 1 && refViewIdxLX[ x0 ][ y1 ] ! = ViewIdx) ||
(predFlagLX[ x1 ][ y0 ] == 1 && refViewIdxLX[ x1 ][ y0 ] ! = ViewIdx) ||
(predFlagLX[ x1 ][ y1 ] == 1 && refViewIdxLX[ x1 ][ y1 ] ! = ViewIdx) 式(F-4´)
上記の式(F-4)では、対象ブロック(対象CU)に含まれる全ての予測ユニットについて和(||)をとることにより、対象CUに含まれる予測ユニットの何れかにおいてインターレイヤ予測が用いられるかが判定される。
S1100:分割モード復号部で符号される分割モードpart_modeを参照し、part_modeが対象符号化ユニットを分割しないことを示す2N×2Nか否かを判定する。2N×2N以外の場合には、照度補償フラグic_enable_flagに0を設定する(S1106)。2N×2Nの場合にはS1101に遷移する。
S1101:マージフラグmerge_flagを参照し、対象ブロックがマージモードであるか否か(merge_flagが1であるか否か)を判定する。対象ブロックがマージモードであれば符号化データから、照度補償フラグic_flagを復号する(S1105)。マージモードでなければ、S1104に遷移する。
S1104:参照ピクチャインデックスref_idx_LXを参照し、対象ブロックがインターレイヤ予測であるかを判定する。インターレイヤ予測であれば、符号化データから照度補償フラグic_enable_flagを復号する(S1105)。そうでなければ、照度補償フラグic_enable_flagに0を設定する(S1106)
この場合には、符号化データ構成は、図46の符号化データ構成と類似するが、条件SF1001の代わりに条件SF1101が用いられる。すなわち、式(F-1)が下記の式(F-1´)に置き換えられる。
条件SF1002、条件SF1003は既に説明した通りであるが、条件SF1003中のanyIvRefPicFlagの導出式は、簡略化される。具体的には、2N×2Nの場合、対象CUに含まれる予測ユニットは一つだけであるから、式(F-4)の代わりに、以下の式(F-7)で導出可能である。
(inter_pred_idc[ x0 ][ y0 ] ! = Pred_LY && refViewIdxLX[ x0 ][ y0 ] ! = ViewIdx
式(F-7)
さらに、L0予測とL1予測の場合を明示的に記載すると、以下のように変形できる。
変形例F1´の照度補償フラグ復号部は、符号化ユニットの分割モードが分割しないことを示す、2N×2Nである場合に、照度補償フラグic_enable_flagを符号化データから復号する。照度補償フラグic_enable_flagを復号する場合を限定することにより、照度補償フラグic_enable_flagの符号量を削減する効果を奏する。また、対象CUに含まれる予測ユニットを1つに限定するため、インターレイヤ予測が含まれるか否かの判定anyIvRefPicFlagの処理量を低減する効果を奏する。また、照度補償を行う場合も2N×2Nに限定されるため、例えば8×8CUにおいて2N×N、N×2Nに相当するブロックサイズが8×4、4×8の場合を除外することになるため、ブロックサイズが小さい場合に特に問題となる処理量を低減する効果を奏する。
以下、インター予測パラメータ復号部の変形例としてインター予測パラメータ復号部303F2を説明する。変形例F2では、追加予測として照度予測を行う場合を扱う。図47は、インター予測パラメータ復号制御部3031F2の構成を示すブロック図である。図47に示すように、インター予測パラメータ復号制御部3031F2は、照度補償フラグ復号部30311F2、分割モード復号部、マージフラグ復号部30317、マージインデックス復号部30312、インター予測フラグ復号部、参照ピクチャインデックス復号部30318、ベクトル候補インデックス復号部30313、ベクトル差分復号部を備える。
S1201:マージフラグmerge_flagを参照し、対象ブロックがマージモードであるか否か(merge_flagが1であるか否か)を判定する。対象ブロックがマージモードであれば符号化データから、照度補償フラグic_flagを復号する(S1203)。マージモードでなければ、S1204に遷移する。
S1203:マージインデックスmerge_idxを参照し、merge_idxが所定の値であるか否かを判定する。所定の値の場合には、照度補償フラグic_enable_flagを0に設定する(S1206)。所定の値以外であれば、符号化データから照度補償フラグic_enable_flagを復号する(S1205)。merge_idxはマージインデックス復号部30312で復号される(以下同様)。
S1204:参照ピクチャインデックスref_idx_LXを参照し、対象ブロックにインターレイヤ予測が含まれるかを判定する。インターレイヤ予測が含まれる場合(anyIvRefPicFlagが1)には、符号化データから照度補償フラグic_enable_flagを復号する(S1205)。そうでなければ(anyIvRefPicFlagが0)、照度補償フラグic_enable_flagに0を設定する(S1206)
図49は、インター予測パラメータ復号部303F2で復号される照度補償フラグic_enable_flagの符号化データの構成を示す図である。照度補償フラグ復号部30311F2は、内部の照度補償フラグ判定部30314F2において、照度補償フラグを符号化データから復号するか否かを判定する。
条件SF2003は、既に説明した式(F-3)の式で表現される。
以下、インター予測パラメータ復号部の変形例としてインター予測パラメータ復号部303F3を説明する。変形例F3では、追加予測として照度予測を行う場合を扱う。図50は、インター予測パラメータ復号制御部3031F3の構成を示すブロック図である。図50に示すように、インター予測パラメータ復号制御部3031F3は、照度補償フラグ復号部30311F3、分割モード復号部、マージフラグ復号部30317、マージインデックス復号部30312、インター予測フラグ復号部、参照ピクチャインデックス復号部30318、ベクトル候補インデックス復号部30313、ベクトル差分復号部、特定マージインデックス照度補償スキップフラグ導出部30319を備える。
S1301:マージフラグmerge_flagを参照し、対象ブロックがマージモードであるか否か(merge_flagが1であるか否か)を判定する。対象ブロックがマージモードであればマージモードであれば、S1302に遷移し、マージモードでなければ、S1304に遷移する。
S1302:特定マージインデックス照度補償スキップフラグic_skip_mergeidx0_flagが有効であるかを判定し、有効であればS1303に遷移。有効でなければ、符号化データから、照度補償フラグを復号する(S1305)。ic_skip_mergeidx0_flagは、特定マージインデックス照度補償スキップフラグ導出部30319で復号される(以下同様)。
S1303:マージインデックスmerge_idxを参照し、マージインデックスmerge_idxが所定の値であるか否かを判定する。所定の値の場合には、照度補償フラグic_enable_flagを0に設定する(S1306)。所定の値以外であれば、符号化データから、照度補償フラグic_enable_flagを復号する(S1305)
S1304:参照ピクチャインデックスref_idx_LXを参照し、対象ブロックにインターレイヤ予測が含まれるかを判定する。インターレイヤ予測が含まれる場合(anyIvRefPicFlagが1)には、符号化データから照度補償フラグic_enable_flagを復号する(S1305)。そうでなければ(anyIvRefPicFlagが0)、照度補償フラグic_enable_flagに0を設定する(S1306)
図52は、インター予測パラメータ復号部303F3で復号される照度補償フラグic_enable_flagの符号化データの構成を示す図である。
条件SF1303は、既に説明した式(F-3)の式で表現される。
変形例F3の別の構成として、ic_skip_mergeidx0_flagを符号化データから復号せず、表示順序(POC)から導出しても良い。以下、特定マージインデックス照度補償スキップフラグ導出部30319の代わりに、特定マージインデックス照度補償スキップフラグ導出部30319Bを用いる構成を説明する。
S3007B 参照ピクチャと所定の値PERIOD(ここでは8)との剰余が0である場合には、同じレイヤの参照ピクチャの時間間隔が大きく、インターレイヤ予測が使用されやすいと判定し、ic_skip_mergeidx0_flagを0とする(S3008)。それ以外の場合には、ic_skip_mergeidx0_flagを1とする(S3009)。
従って、特定の周期ではic_skip_mergeidx0_flagが1となる。この場合に、上記の照度補償フラグ復号部30311F3によれば、マージインデックスが特定の値において照度補償フラグを符号化データから復号せずに0となる。
変形例F3のさらに別の構成として、ic_skip_mergeidx0_flagを符号化データから復号せず、表示順序(POC)と参照ピクチャリストに含まれる参照ピクチャとの距離に応じて導出しても良い。以下、特定マージインデックス照度補償スキップフラグ導出部30319の代わりに、特定マージインデックス照度補償スキップフラグ導出部30319Cを用いる構成を説明する。
S3007C 対象ピクチャのPOCと、参照ピクチャのPOCが大きい場合には、同じレイヤの参照ピクチャの時間間隔が大きく、インターレイヤ予測が使用されやすいと判定し、ic_skip_mergeidx0_flagを0とする(S3008)。それ以外の場合には、ic_skip_mergeidx0_flagを1とする(S3009)。
DiffPicOrderCnt( aPic, currPic )
が最小となるaPicである、aPicXを特定する。特定されたaPicXと、対象ピクチャとのPOC距離が所定の値THよりも大きい場合(ステップS3007CにおけるPOC間隔が大きい場合の判定)には、インターレイヤ予測が使用されやすいため、ic_skip_mergeidx0_flagを0とする。
なお、上記条件は所定の値THよりも小さい場合(もしくは以下の場合)にic_skip_mergeidx0_flagを1とすることと等価である。
変形例F3のさらに別の構成として、ic_skip_mergeidx0_flagを符号化データから復号せず、参照ピクチャにおいて、イントラ予測が用いられるか否かに応じて導出しても良い。以下、特定マージインデックス照度補償スキップフラグ導出部30319の代わりに、特定マージインデックス照度補償スキップフラグ導出部30319Dを用いる構成を説明する。
S3007D 対象ブロックに対応する位置に属する、参照ピクチャのブロックにおいて、イントラ予測が用いられているかを判定する。イントラ予測が用いられている場合には、インターレイヤ予測が使用されやすいと判定し、ic_skip_mergeidx0_flagを0とする(S3008)。それ以外の場合には、ic_skip_mergeidx0_flagを1とする(S3009)。
特定マージインデックス照度補償スキップフラグ導出部は、対象ブロックに対応する位置に属する、第1のレイヤ画像のブロックにおいて、イントラ予測が用いられているか否かに応じて、特定マージインデックス照度補償スキップフラグを導出することを特徴とする。
以下、インター予測パラメータ復号部の変形例としてインター予測パラメータ復号部303F4を説明する。変形例F4では、追加予測として照度予測を行う場合を扱う。図58は、インター予測パラメータ復号制御部3031F4の構成を示すブロック図である。図58に示すように、インター予測パラメータ復号制御部3031F4は、照度補償フラグ復号部30311F4、分割モード復号部、マージフラグ復号部30317、マージインデックス復号部30312、インター予測フラグ復号部、参照ピクチャインデックス復号部30318、ベクトル候補インデックス復号部30313、ベクトル差分復号部、特定マージインデックス照度補償スキップフラグ導出部30319を備える。
S1401:マージフラグmerge_flagを参照し、対象ブロックがマージモードであるか否か(merge_flagが1であるか否か)を判定する。対象ブロックがマージモードであれば(merge_flag=1)、S1402に遷移し、マージモードでなければ(merge_flag=0)、S1404に遷移する。S1404:対象ブロックに隣接する隣接ブロックの参照ピクチャインデックスref_idx_LXを参照し、対象ブロックにインターレイヤ予測が含まれるかを判定する。隣接ブロックにインターレイヤ予測が含まれる場合(anyNeighIvRefPicFlagが1)には、符号化データから照度補償フラグic_enable_flagを復号する(S1405)。そうでなければ(anyNeighIvRefPicFlagが0)、照度補償フラグic_enable_flagに0を設定する(S1406)
図60は、インター予測パラメータ復号部303F3で復号される符号化データの構成を示す図である。
条件SF1003は、既に説明した式(F-3)の式で表現される。
ここで、座標[x0 - 1][y0]は、対象ブロックの左に隣接するブロックの座標、座標[x0][y0-1]は、対象ブロックの上に隣接するブロックの座標を示し、上記式は、対象ブロックの左に隣接するブロックもしくは、対象ブロックの上に隣接するブロックがインターレイヤ予測(refViewIdxLX とViewIdxが異なる場合)であれば、隣接ブロックにインターレイヤ予測を用いていると判定する。
以下、インター予測パラメータ復号部の変形例としてインター予測パラメータ復号部303F5を説明する。変形例F5では、追加予測として照度予測を行う場合を扱う。図61は、インター予測パラメータ復号制御部3031F5の構成を示すブロック図である。図61に示すように、インター予測パラメータ復号制御部3031F5は、照度補償フラグ復号部30311F5、参照ピクチャインデックス復号部30318を備える。
S1501:L0リストから導出される参照ピクチャを参照して、対象ブロックにインターレイヤ予測を行う予測ユニットが含まれるか(anyIvRefPicInL0Flag)を判定する。L0リストを用いた予測において、インターレイヤ予測を行う予測ユニットが含まれる場合(anyIvRefPicInL0Flagが1)には、符号化データから照度補償フラグic_enable_flagを復号する(S1505)。そうでなければ(anyIvRefPicInL0Flagが0)、照度補償フラグic_enable_flagに0を設定する(S1506)
anyIvRefPicInL0Flagは、対象ブロック(対象CU)の座標が[x0][y0]である場合において、以下の式により導出する。式(F-8)と異なるL0の参照リストのみを参照するため、インターレイヤ予測を行う予測ユニットが含まれるか否かの判定が容易になる。
(inter_pred_idc[ x0 ][ y0 ] ! = Pred_L1 && refViewIdxL0[ x0 ][ y0 ] ! = ViewIdx) | |
(inter_pred_idc[ x0 ][ y1 ] ! = Pred_L1 && refViewIdxL0[ x0 ][ y1 ] ! = ViewIdx) | |
(inter_pred_idc[ x1 ][ y0 ] ! = Pred_L1 && refViewIdxL0[ x1 ][ y0 ] ! = ViewIdx) | |
(inter_pred_idc[ x1 ][ y1 ] ! = Pred_L1 && refViewIdxL0[ x1 ][ y1 ] ! = ViewIdx) 式(F-8´)
なお、インター予測フラグinter_pred_idcと予測リストフラグpredFlagLXは相互に対応するため、インターレイヤ予測が用いられるか否かの判定式として、式(F-8´)の代わりに以下の式を用いることもできる。
(prefFlagL0[ x0 ][ y0 ] == 1 && refViewIdxL0[ x0 ][ y0 ] ! = ViewIdx) ||
(prefFlagL0[ x0 ][ y1 ] == 1 && refViewIdxL0[ x0 ][ y1 ] ! = ViewIdx) ||
(prefFlagL0[ x1 ][ y0 ] == 1 && refViewIdxL0[ x1 ][ y0 ] ! = ViewIdx) ||
(prefFlagL0[ x1 ][ y1 ] == 1 && refViewIdxL0[ x1 ][ y1 ] ! = ViewIdx) 式(F-8´´)
ここで、x1、y1は、対象CUに複数の予測ユニットが含まれている場合における予測ユニットの座標を示す。具体的には、座標[x0][x0]が1つ目の予測ユニット、座標[x0][y1]が2つ目の予測ユニット、座標[x1][y0]が3つ目の予測ユニット、座標[x1][y1]が3つ目の予測ユニットに対応する。インター予測フラグinter_pred_idc[][]は、予測ユニットの予測方向を示し、L0予測(Pred_L0)、L1予測(Pred_L1)、双予測(Pred_BI)の何れかである。従って、インター予測フラグinter_pred_idc[][]がPred_L1ではないとは、L0予測もしくは双予測の場合を意味する。この時、L0の参照レイヤ(ここでは参照ビュー)をrefViewIdxL0により参照し、それが、対象レイヤ(対象ビュー)ViewIdx以外の場合に、L0予測にインターレイヤ予測が用いられることになる。上記式では、対象CUに含まれる全ての予測ユニットにおいて、インターレイヤ予測が用いられるか否かを示すinter_pred_idc[ x0 ][ y0 ] ! = Pred_L1 && refViewIdxL0[ x0 ][ y0 ] ! = ViewIdxの導出し、その和(||)を得ることによって、対象CUに含まれるいずれかの予測ユニットにおいて、L0の予測が行われるか否かを示す。
式(F-8´)、式(F-8´´)では、L0の予測フラグpredFlagL0、L0の参照ピクチャインデックスref_idx_l0、L0参照ピクチャリストRefPicListL0のみを参照し、L1の予測フラグpredFlagL1、L1の参照ピクチャインデックスref_idx_l1、L1参照ピクチャリストRefPicListL1は参照しないため、インターレイヤ予測を行う予測ユニットが含まれるか否かの判定が容易になる。
さらに、変形例5も変形例1´と同様に、符号化ユニットの分割モードが分割しないことを示す2N×2Nの場合に限定しても良い(変形例F5´と呼ぶ)。符号化データの構成においては、条件SF1001の代わりに、条件SF1101を用いる。また、anyIvRefPicInL0Flagでは、式(F-8)の代わりに、以下の式(F-9)を用いる。
なお、インター予測フラグinter_pred_idcと予測リストフラグpredFlagLXは相互に対応するため、インターレイヤ予測が用いられるか否かの判定式として、式(F-9)の代わりに以下の式を用いることもできる。
以上、式(F-9)、式(F-9´)の判定式によれば、式(F-8´)、式(F-8´´)同様、インターレイヤ予測が行われるか否かの判定を、L1の参照ピクチャの情報だけに基づいて行うため、インターレイヤ予測が行われるか否かの判定が容易になる。
以下、インター予測パラメータ復号部の変形例としてインター予測パラメータ復号部303F6を説明する。変形例F6では、追加予測として照度予測を行う場合を扱う。インター予測パラメータ復号制御部3031F6は、照度補償フラグ復号部30311F6、参照ピクチャインデックス復号部30318を備える。
S1601:マージフラグmerge_flagを参照し、対象ブロックがマージモードであるか否か(merge_flagが1であるか否か)を判定する。対象ブロックがマージモードであればマージモードであれば、S1602に遷移し、マージモードでなければ、S1604に遷移する。
S1602:特定マージインデックス照度補償スキップフラグic_skip_mergeidx0_flagが有効であるかを判定し、有効であればS1603に遷移。有効でなければ、符号化データから、照度補償フラグを復号する(S1605)。ic_skip_mergeidx0_flagは、特定マージインデックス照度補償スキップフラグ導出部30319で復号される(以下同様)。
S1603:マージインデックスmerge_idxを参照し、マージインデックスmerge_idxが所定の値であるか否かを判定する。所定の値の場合には、照度補償フラグic_enable_flagを0に設定する(S1606)。所定の値以外であれば、符号化データから、照度補償フラグic_enable_flagを復号する(S1605)
S1604:L0リストから導出される参照ピクチャを参照して、対象ブロックにインターレイヤ予測を行う予測ユニットが含まれるか(anyIvRefPicInL0Flag)を判定する。L0リストを用いた予測において、インターレイヤ予測を行う予測ユニットが含まれる場合(anyIvRefPicInL0Flagが1)には、符号化データから照度補償フラグic_enable_flagを復号する(S1605)。そうでなければ(anyIvRefPicInL0Flagが0)、照度補償フラグic_enable_flagに0を設定する(S1606)
ここで、anyIvRefPicInL0Flagの導出方法、ic_skip_mergeidx0_flagの導出方法は、変形例F5において既に説明した通りである。
変形例F6では、変形例1の効果F1、変形例2の効果F2、変形例3の効果F3に加え、変形例F6の効果F6aの効果を奏する。なお、変形例F6では、対象ブロックがマージモードである場合においては、参照ピクチャインデックスによる限定を行わない。従って、対象ブロックがマージモードの場合には、照度予測を用いる場合をL0リストを用いた参照ピクチャが用いられる場合に必ずしも限定されない。しかしながら、後述の照度補償部3093Fもしくは照度補償部3093Gを用いることによりL0制限により処理量を低減する効果を奏する(効果F5b)ことができる。
残差格納部313は、逆量子化・逆DCT部311において、第1レイヤ画像(ベースレイヤ、ベースビュー)に対して導出された残差信号を格納する。図38は、残差格納部313の構成を示す図である。
具体的には、以下の式のように、残差格納メモリ3132のメモリresStoreSamplesに、残差resSamples を記録する。
ここで、xmin=-(1<<(BitDepthY-1))、xmax = (1<<(BitDepthY-1))-1、x、yは、格納先の座標である。xは0以上、width - 1以下の整数、yは0以上、height - 1)以下の整数、widthとheightは画面の幅と高さである。
図38(b)は、残差格納部313の変形例である残差格納部313Aを示す図であり、残差予測部3092Aにおいて、参照レイヤの残差を読み出す際に、水平方向もしくは/かつ垂直方向の解像度を所定の倍率をNとしてN分の1に間引いた位置の画素を参照する場合に対応する。残差格納部313Aは、残差縮小部3131A、残差格納メモリ3132、残差伸長部3133Aを備える。
ここで、xmin=-(1<<(BitDepthY-1))、xmax = (1<<(BitDepthY-1))-1、x、yは、格納先の座標である。xは0以上、(width + N - 1) / N以下の整数、yは0以上、(height + N - 1) / N以下の整数。widthとheightは画面の幅と高さである。
ここで、x、yは、読み出し先の座標である。残差格納メモリ3132では空間方向に縮小されているため、読み出し先の座標(x, y)は、残差格納メモリ3132上の(x/N, y/N)に対応する。なお、この読み出し時に、線形補間などの補間処理を行っても良い。
次に、本実施形態に係る画像符号化装置11の構成について説明する。図39は、本実施形態に係る画像符号化装置11の構成を示すブロック図である。画像符号化装置11は、予測画像生成部101、減算部102、DCT・量子化部103、エントロピー符号化部104、逆量子化・逆DCT部105、加算部106、予測パラメータメモリ(予測パラメータ記憶部、フレームメモリ)108、参照ピクチャメモリ(参照画像記憶部、フレームメモリ)109、符号化パラメータ決定部110、予測パラメータ符号化部111、残差格納部313(残差記録部)を含んで構成される。予測パラメータ符号化部111は、インター予測パラメータ符号化部112及びイントラ予測パラメータ符号化部113を含んで構成される。
(予測画像生成部101の別の形態)
予測画像生成部101の別の形態では、残差予測部3092の代わりに、残差予測部3092Aを備える。上記の構成によれば、残差の参照位置を制限して読み出すことにより、残差格納部313において、参照する位置の残差のみを格納すれば良いため、残差を記録するためのメモリ量を低下させるという効果を奏する。
次に、インター予測パラメータ符号化部112の構成について説明する。インター予測パラメータ符号化部112は、インター予測パラメータ復号部303に対応する手段である。
以下、インター予測パラメータ符号化部の変形例としてインター予測パラメータ符号化部1031Aを説明する。インター予測パラメータ符号化部1031Aは、追加予測フラグ符号化部10311A、マージインデックス符号化部10312、ベクトル候補インデックス符号化部10313を備える。追加予測フラグ符号化部10311Aは内部に追加予測フラグ判定部30314Aを含んで構成される。
を符号化データに含まれるか否かの判定方法は同じである。なお、インター予測パラメータ復号部303Aでは、追加予測フラグを符号化データに含まれる場合、追加予測フラグの復号を行うが、インター予測パラメータ符号化部1031Aでは、追加予測フラグの符号化を行う。
以下、インター予測パラメータ符号化部の変形例としてインター予測パラメータ符号化部1031A2を説明する。インター予測パラメータ符号化部1031A2は、追加予測フラグ符号化部10311A2、マージインデックス符号化部10312、ベクトル候補インデックス符号化部10313を備える。追加予測フラグ符号化部10311A2は内部に追加予測フラグ判定部30314A2を含んで構成される。
以下、インター予測パラメータ符号化部の変形例としてインター予測パラメータ符号化部1031Bを説明する。インター予測パラメータ符号化部1031Bは、追加予測フラグ符号化部10311B、マージインデックス符号化部10312、ベクトル候補インデックス符号化部10313を備える。追加予測フラグ符号化部10311Bは内部に追加予測フラグ判定部30314Bを含んで構成される。
以下、インター予測パラメータ符号化部の変形例としてインター予測パラメータ符号化部1031Cを説明する。インター予測パラメータ符号化部1031Cは、追加予測フラグ符号化部10311C、マージインデックス符号化部10312、ベクトル候補インデックス符号化部10313を備える。追加予測フラグ符号化部10311Bは内部に追加予測フラグ判定部30314Cを含んで構成される。
以下、インター予測パラメータ符号化部の変形例としてインター予測パラメータ符号化部1031Dを説明する。インター予測パラメータ符号化部1031Dは、追加予測フラグ符号化部10311D、マージインデックス符号化部10312、ベクトル候補インデックス符号化部10313を備える。追加予測フラグ符号化部10311Bは内部に追加予測フラグ判定部30314Cを含んで構成される。追加予測フラグ符号化部10311Dは内部に追加予測フラグ判定部30314Dを含んで構成される。
以下、インター予測パラメータ符号化部の別の変形例としてインター予測パラメータ符号化部1031D2を説明する。インター予測パラメータ符号化部1031D2は、追加予測フラグ符号化部10311D2、マージインデックス符号化部30312、ベクトル候補インデックス符号化部30313を備える。追加予測フラグ符号化部10311D2は内部に追加予測フラグ判定部30314D2を含んで構成される。追加予測フラグ符号化部10311Dは内部に追加予測フラグ判定部30314D2を含んで構成される。
以下、インター予測パラメータ符号化部の別の変形例としてインター予測パラメータ符号化部1031D3を説明する。インター予測パラメータ符号化部1031D3は、追加予測フラグ符号化部10311D3、マージインデックス符号化部30312D3、ベクトル候補インデックス符号化部30313を備える。追加予測フラグ符号化部10311D3は内部に追加予測フラグ判定部30314D3を含んで構成される。追加予測フラグ符号化部10311D3は内部に追加予測フラグ判定部30314D3を含んで構成される。
以下、インター予測パラメータ符号化部の別の変形例としてインター予測パラメータ符号化部1031D4を説明する。インター予測パラメータ符号化部1031D4は、追加予測フラグ符号化部10311D4、マージインデックス符号化部30312D4、ベクトル候補インデックス符号化部30313を備える。追加予測フラグ符号化部10311D4は内部に追加予測フラグ判定部30314D4を含んで構成される。追加予測フラグ符号化部10311D4は内部に追加予測フラグ判定部30314D4を含んで構成される。
以下、画像符号化装置11の変形例を説明する。以下の変形例では、インター予測パラメータ符号化部112の代わりに、インター予測パラメータ符号化部1031Eを備え、マージ予測パラメータ導出部3036の代わりに、マージ予測パラメータ導出部3036Eを備える。それ以外の手段は、インター予測パラメータ符号化部112と同じであるため説明を省略する。
インター予測パラメータ符号化部の別の変形例としてインター予測パラメータ符号化部1031F1を用いても良い。インター予測パラメータ符号化部1031F1は、追加予測フラグ符号化部10311F1、マージインデックス符号化部30312、ベクトル候補インデックス符号化部30313を備える。
インター予測パラメータ符号化部の別の変形例としてインター予測パラメータ符号化部1031F2を用いても良い。インター予測パラメータ符号化部1031F2は、追加予測フラグ符号化部10311F2、マージインデックス符号化部30312、ベクトル候補インデックス符号化部30313を備える。追加予測フラグ符号化部10311F2は追加予測フラグ判定部30314F2を備える。
インター予測パラメータ符号化部の別の変形例としてインター予測パラメータ符号化部1031F3を用いても良い。インター予測パラメータ符号化部1031F3は、追加予測フラグ符号化部10311F3、マージインデックス符号化部30312、ベクトル候補インデックス符号化部30313を備える。追加予測フラグ符号化部10311F3は追加予測フラグ判定部30314F3を備える。
インター予測パラメータ符号化部の別の変形例としてインター予測パラメータ符号化部1031F4を用いても良い。インター予測パラメータ符号化部1031F4は、追加予測フラグ符号化部10311F4、マージインデックス符号化部30312、ベクトル候補インデックス符号化部30313を備える。追加予測フラグ符号化部10311F4は追加予測フラグ判定部30314F4を備える。
インター予測パラメータ符号化部の別の変形例としてインター予測パラメータ符号化部1031F5を用いても良い。インター予測パラメータ符号化部1031F5は、追加予測フラグ符号化部10311F5、マージインデックス符号化部30312、ベクトル候補インデックス符号化部30313を備える。追加予測フラグ符号化部10311F5は追加予測フラグ判定部30314F5を備える。
インター予測パラメータ符号化部の別の変形例としてインター予測パラメータ符号化部1031F5を用いても良い。インター予測パラメータ符号化部1031F6は、追加予測フラグ符号化部10311F6、マージインデックス符号化部30312、ベクトル候補インデックス符号化部30313を備える。追加予測フラグ符号化部10311F6は追加予測フラグ判定部30314F6を備える。
〔まとめ〕
第1の構成の画像復号装置によれば、照度補償を行うか否かを示す照度補償フラグを導出する照度補償フラグ導出部と、上記照度補償フラグが有効を示す値の場合に、対象画像上の対象予測ユニット周囲の画像と、上記対象予測ユニットに対応する参照画像の参照領域画像から照度変化パラメータを用いて、上記対象予測ユニットの予測画像を生成する照度補償部を備え、上記照度補償フラグ導出部は、上記予測画像の生成対象である予測ユニットがマージモードである場合に、照度補償フラグを符号化データから復号し、上記予測ユニットがAMVPモードである場合には、上記予測ユニットの参照ピクチャインデックスがインターレイヤ予測を示す場合には、照度補償フラグを符号化データから復号し、上記の何れでもない場合には、照度補償フラグを符号化データから復号せずに照度補償を行わない、として導出することを特徴とする。
、上記照度補償フラグが有効を示す値の場合に、対象画像上の対象予測ユニット周囲の画像と、上記対象予測ユニットに対応する参照画像の参照領域画像から照度変化パラメータを用いて、上記対象予測ユニットの予測画像を生成する照度補償部を備え、上記照度補償フラグ導出部は、上記予測画像の生成対象である予測ユニットがマージモードでありマージフラグインデックスが所定の値以外の場合に、照度補償フラグを符号化データから復号し、上記予測ユニットがAMVPモードである場合には、上記予測ユニットの参照ピクチャインデックスがインターレイヤ予測を示す場合には、照度補償フラグを符号化データから復号し、上記の何れでもない場合には、照度補償フラグを符号化データから復号せずに照度補償を行わない、として導出することを特徴とする。
上記照度補償フラグ導出部は、上記予測画像の生成対象である予測ユニットがマージモードでありマージフラグインデックスが所定の値以外の場合かつ上記特定マージインデックス照度補償スキップフラグが有効ではない場合、に、照度補償フラグを符号化データから復号し、上記予測ユニットがAMVPモードである場合には、上記予測ユニットの参照ピクチャインデックスがインターレイヤ予測を示す場合には、照度補償フラグを符号化データから復号し、上記の何れでもない場合には、照度補償フラグを符号化データから復号せずに照度補償を行わない、として導出することを特徴とする。
11…画像符号化装置
101…予測画像生成部
102…減算部
103…DCT・量子化部
104…エントロピー符号化部
105…逆量子化・逆DCT部
106…加算部
108…予測パラメータメモリ(フレームメモリ)
109…参照ピクチャメモリ(フレームメモリ)
110…符号化パラメータ決定部
111…予測パラメータ符号化部
112…インター予測パラメータ符号化部
1031A…インター予測パラメータ符号化部
1031A2…インター予測パラメータ符号化部
1031B…インター予測パラメータ符号化部
1031C…インター予測パラメータ符号化部
1031D…インター予測パラメータ符号化部
1031D2…インター予測パラメータ符号化部
1031D3…インター予測パラメータ符号化部
1031D4…インター予測パラメータ符号化部
1031E…インター予測パラメータ符号化部
1031F1…インター予測パラメータ符号化部
1031F2…インター予測パラメータ符号化部
1031F3…インター予測パラメータ符号化部
1031F4…インター予測パラメータ符号化部
1031F5…インター予測パラメータ符号化部
1031F6…インター予測パラメータ符号化部
10311…追加予測フラグ符号化部
10311F1…追加予測フラグ符号化部
10311F2…追加予測フラグ符号化部
10311F3…追加予測フラグ符号化部
10311F4…追加予測フラグ符号化部
10311F5…追加予測フラグ符号化部
10311F6…追加予測フラグ符号化部
1121…マージ予測パラメータ導出部
1122…AMVP予測パラメータ導出部
1123…減算部
1126…予測パラメータ統合部
113…イントラ予測パラメータ符号化部
21…ネットワーク
31…画像復号装置
301…エントロピー復号部
302…予測パラメータ復号部
303…インター予測パラメータ復号部
303A…インター予測パラメータ復号部
303A2…インター予測パラメータ復号部
303B…インター予測パラメータ復号部
303C…インター予測パラメータ復号部
303D…インター予測パラメータ復号部
303D2…インター予測パラメータ復号部
303D3…インター予測パラメータ復号部
303D4…インター予測パラメータ復号部
303E…インター予測パラメータ復号部
3031…インター予測パラメータ復号制御部
3031D…インター予測パラメータ復号制御部
3031E…インター予測パラメータ復号制御部
30311…追加予測フラグ復号部
30311A…追加予測フラグ復号部
30311A2…追加予測フラグ復号部
30311B…追加予測フラグ復号部
30311C…追加予測フラグ復号部
30311D…追加予測フラグ復号部
30311D2…追加予測フラグ復号部
30311D3…追加予測フラグ復号部
30311D4…追加予測フラグ復号部
30311F1…照度補償フラグ復号部
30311F2…照度補償フラグ復号部
30311F3…照度補償フラグ復号部
30311F4…照度補償フラグ復号部
30311F5…照度補償フラグ復号部
30311F6…照度補償フラグ復号部
303111…リファレンスレイヤ判定部
30312…マージインデックス復号部
30312D3…マージインデックス復号部
30312E…マージインデックス復号部
30313…ベクトル候補インデックス復号部
30313E…ベクトル候補インデックス復号部
30314…追加予測フラグ判定部
30314A…追加予測フラグ判定部
30314A2…追加予測フラグ判定部
30314B…追加予測フラグ判定部
30314C…追加予測フラグ判定部
30314D…追加予測フラグ判定部
30314D2…追加予測フラグ判定部
30314D3…追加予測フラグ判定部
30314D4…追加予測フラグ判定部
303141…レイヤ判定部
303142…全PUパラメータ判定部
303142B…PU0パラメータ判定部
303143…インデックス判定部
30315…残差予測判定部
30316…照度補償判定部
30319…特定マージインデックス照度補償スキップフラグ導出部
30319B…特定マージインデックス照度補償スキップフラグ導出部
30319C…特定マージインデックス照度補償スキップフラグ導出部
30319D…特定マージインデックス照度補償スキップフラグ導出部
3032…AMVP予測パラメータ導出部
3035…加算部
3036…マージ予測パラメータ導出部
3036E…マージ予測パラメータ導出部
30361…マージ候補導出部
303611…マージ候補格納部
303612…拡張マージ候補導出部
3036121…インターレイヤマージ候補導出部
3036122…変位ベクトル取得部
3036123…インターレイヤ変位マージ候補導出部
303613…基本マージ候補導出部
3036131…空間マージ候補導出部
3036132…時間マージ候補導出部
3036133…結合マージ候補導出部
3036134…ゼロマージ候補導出部
30361E…マージ候補導出部
30362…マージ候補選択部
304…イントラ予測パラメータ復号部
306…参照ピクチャメモリ(フレームメモリ)
307…予測パラメータメモリ(フレームメモリ)
308…予測画像生成部
309…インター予測画像生成部
3091…変位補償部
3092…残差予測部
3092A…残差予測部
3092B…残差予測部
3092B…残差予測部
3092C…残差予測部
3092D…残差予測部
30921…残差取得部
30921A…残差取得部
30922…残差フィルタ部
3093…照度補償部
3093B…照度補償部
3093C…照度補償部
3093D…照度補償部
3093E…照度補償部
3093F…照度補償部
3093G…照度補償部
3093H…照度補償部
30931…照度パラメータ推定部
30931H…照度パラメータ推定部
309311B…積算シフト値導出部
309312B…積算値導出部
309313B…加算値導出部
309313H…加算値導出部
309314B…第1パラメータ導出部
309314C…第1パラメータ導出部
309314D…第1パラメータ導出部
309314H…第1パラメータ導出部
309315B…第2パラメータ導出部
309315H…第2パラメータ導出部
309316B…パラメータa導出部
309316C…パラメータa導出部
309316D…パラメータa導出部
309316H…パラメータa導出部
309316H2…パラメータa導出部
3093161B…第1パラメータクリップ部
3093161H…パラメータクリップ部
3093162B…第1パラメータシフト部
3093163B…第2パラメータシフト部
3093163H…第2正規化シフト部
3093164B…テーブルベースパラメータa導出部
3093164H…テーブルベースパラメータa導出部
3093165H…除算パラメータa導出部
309316C…パラメータa導出部
3093161C…第1パラメータクリップ部
3093162C…共通シフト部
3093164C…テーブルベースパラメータa導出部
309317B…パラメータb導出部
309317G…パラメータb導出部
309317H…パラメータb導出部
309318E…正則化項加算部
309318H…正則化項加算部
30932…照度補償フィルタ
30932B…照度補償フィルタ部
30932B´…照度補償フィルタ部
30932G…照度補償フィルタ部
3094…重み予測部
310…イントラ予測画像生成部
3104E…LM予測部
3104H…LM予測部
31041…LMパラメータ推定部
31041H…LMパラメータ推定部
310411…LM積算シフト値導出部
310412…LM積算値導出部
310413…LM加算値導出部
310413H…LM加算値導出部
310414…LM第1パラメータ導出部
310414H…LM第1パラメータ導出部
310415…LM第2パラメータ導出部
310415H…LM第2パラメータ導出部
310416…LMパラメータa導出部
310416H…LMパラメータa導出部
310416H2…LMパラメータa導出部
3104161H…LMパラメータクリップ部
3104163H…LM第2正規化シフト部
3104164H…LMテーブルベースパラメータa導出部
3104165H…LM除算パラメータa導出部
310417…LMパラメータb導出部
310417H…LMパラメータb導出部
310418E…LM正則化項加算部
3104180E…LM正則化項導出部
3104180H…LM正則化項導出部
3104181E…LM第1パラメータ正則化項加算部
3104182E…LM第2パラメータ正則化項加算部
31042…LMフィルタ部
31042H…LM予測フィルタ部
311…逆量子化・逆DCT部
312…加算部
313…残差格納部
313A…残差格納部
3131…残差値域制限部
3131A…残差縮小部
3132…残差格納メモリ
3133…残差読み出し部
3133A…残差伸長部
41…画像表示装置
Claims (15)
- 照度補償を行うか否かを示す照度補償フラグを導出する照度補償フラグ導出部と、上記照度補償フラグが有効を示す値の場合に、対象画像上の対象予測ユニット周囲の画像と、上記対象予測ユニットに対応する参照画像の参照領域画像から導出される照度変化パラメータを用いて、上記対象予測ユニットの予測画像を生成する照度補償部を備え、上記照度補償フラグ導出部は、上記予測画像の生成対象である予測ユニットがマージモードである場合に、照度補償フラグを符号化データから復号することを特徴とする画像復号装置。
- 上記照度補償フラグ導出部は、上記予測画像の生成対象である予測ユニットがマージモードでありマージフラグインデックスが所定の値以外の場合に、照度補償フラグを符号化データから復号することを特徴とする請求項1に記載の画像復号装置。
- 特定マージインデックス照度補償スキップフラグを導出する特定マージインデックス照度補償スキップフラグ導出部をさらに備え、
上記照度補償フラグ導出部は、上記予測画像の生成対象である予測ユニットがマージモードでありマージフラグインデックスが所定の値以外の場合かつ上記特定マージインデックス照度補償スキップフラグが有効ではない場合に、照度補償フラグを符号化データから復号することを特徴とする請求項2に記載の画像復号装置。 - 上記特定マージインデックス照度補償スキップフラグ導出部は、上記特定マージインデックス照度補償スキップフラグをスライスヘッダから復号することを特徴とする請求項3に記載の画像復号装置。
- 上記照度補償フラグ導出部は、上記予測ユニットがAMVPモードである場合には、上記予測ユニットの参照ピクチャがインタービュー予測を示す場合に、上記照度補償フラグを符号化データから復号することを特徴とする請求項1から4のいずれか1項に記載の画像復号装置。
- 照度補償を行うか否かを示す照度補償フラグを、符号化ユニット単位で、導出する照度補償フラグ導出部と、上記照度補償フラグが有効を示す値の場合に、対象画像上の対象予測ユニット周囲の画像と、上記対象予測ユニットに対応する参照画像の参照領域画像から導出される照度変化パラメータを用いて、上記対象予測ユニットの予測画像を生成する照度補償部を備え、上記照度補償フラグ導出部は、符号化ユニットの分割モードが分割しないことを示す、2N×2Nである場合に、照度補償フラグを符号化データから復号することを特徴とする画像復号装置。
- 上記照度補償部は、参照画像の画素値と復号画像の画素値の積の和と、参照画像の画素値の和と復号画像の画素値の和の積から導出される第1パラメータと、参照画像の画素値の2乗の和と、参照画像の画素値の和の2乗から導出される第2パラメータから、上記照度変化パラメータを導出し、さらに、上記照度補償部は、第1パラメータと第2パラメータに同じ正則化項を加算するか、もしくは、第1パラメータを導出する要素および第2パラメータを導出する要素に同じ正則化項を加算する正則化項加算部を備えることを特徴とする請求項6に記載の画像復号装置。
- 上記照度補償部は、参照画像の画素値の2乗の和と、参照画像の画素値の和の2乗から導出される第2パラメータを右シフトした値から正則化項を導出することを特徴とする請求項6に記載の画像復号装置。
- 動き補償画像に照度補償を適用する照度補償部を備え、上記照度補償部は、
参照ピクチャ上の参照画像と、復号対象ピクチャ上の復号画像から照度変化パラメータとして、パラメータaとパラメータbを導出する照度パラメータ推定部と、
上記照度変化パラメータを用いて照度補償を行う照度補償フィルタを備え、
照度補償フィルタは、参照ピクチャから得られる動き補償画像と上記パラメータaの積に所定の固定シフト定数だけ右シフトしてから上記パラメータbを加えることで、照度補償を行うことを特徴とする画像復号装置。 - 上記照度パラメータ推定部は、参照画像の画素値と復号画像の画素値の積の和と、参照画像の画素値の和と復号画像の画素値の和の積から導出される第1パラメータと、参照画像の画素値の2乗の和と、参照画像の画素値の和の2乗から導出される第2パラメータから、上記パラメータaを導出し、
さらに、上記照度パラメータ推定部は、画素ビット深度に応じて積算シフト値を導出し、参照画像の画素値と復号画像の画素値の積を上記積算シフト値だけ右シフトした値の和と、参照画像の画素値の和と復号画像の画素値の和の積を上記積算シフト値だけ右シフトした値から導出される第1パラメータと、参照画像の画素値の2乗を上記積算シフト値だけ右シフトした値の和と、参照画像の画素値の和の2乗を上記積算シフト値だけ右シフトした値から導出される第2パラメータから、上記パラメータaを導出することを特徴とする請求項9に記載の画像復号装置。 - 上記照度パラメータ推定部は、積算シフト値を、画素ビット深度から所定の定数を引いた値と0との最大値に設定することを特徴とする請求項10に記載の画像復号装置。
- 上記照度パラメータ推定部は、参照画像の画素値と復号画像の画素値の積の和と、参照画像の画素値の和と復号画像の画素値の和の積から第1パラメータを導出し、参照画像の画素値の2乗の和と、参照画像の画素値の和の2乗から第2パラメータを導出し、上記第1パラメータと上記第2パラメータを各々右シフトすることにより正規化第1パラメータと正規化第2パラメータを導出し、正規化第1パラメータと、正規化第2パラメータをインデックスとして所定のテーブルを参照することで定まるテーブル値の積を右シフトすることにより、上記パラメータaを導出し、上記テーブルは、上記インデックスが0である場合に0であることを特徴とする請求項9に記載の画像復号装置。
- 上記照度パラメータ推定部は、参照画像の画素値と復号画像の画素値の積の和と、参照画像の画素値の和と復号画像の画素値の和の積から第1パラメータを導出し、参照画像の画素値の2乗の和と、参照画像の画素値の和の2乗から第2パラメータを導出し、
上記第1パラメータと上記第2パラメータを各々右シフトすることにより正規化第1パラメータと正規化第2パラメータを導出し、正規化第1パラメータと、正規化第2パラメータをインデックスとして所定のテーブルを参照することで定まるテーブル値の積を右シフトすることにより、上記パラメータaを導出し、
さらに、上記照度パラメータ推定部は、第1パラメータを第2パラメータから導出される値以下に制限することを特徴とする請求項9に記載の画像復号装置。 - 追加予測を行うか否かを示す追加予測フラグとして2つのフラグを符号化データから復号する追加予測フラグ復号部と、
上記追加予測フラグ復号部が導出するフラグに応じて、動き補償画像に追加予測を行うインター予測画像生成部を備え、
上記追加予測フラグ復号部は、1つ目のフラグが0である場合に限り、2つ目のフラグを復号することを特徴とする画像復号装置。 - 上記追加予測フラグの一方は残差予測フラグ、もう一方は照度補償フラグであり、上記インター予測画像生成部は、上記残差予測フラグがオンの場合には、動き補償画像に残差予測を行い、上記照度補償フラグがオンの場合には、動き補償画像に、照度補償を行うことを特徴とする請求項14に記載の画像復号装置。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2014554266A JP6278900B2 (ja) | 2012-12-26 | 2013-11-28 | 画像復号装置 |
| US14/652,139 US9948951B2 (en) | 2012-12-26 | 2013-11-28 | Image decoding device which generates a predicted image of a target prediction unit |
| US15/914,163 US20180199064A1 (en) | 2012-12-26 | 2018-03-07 | Image decoding device and an image encoding device |
Applications Claiming Priority (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012282385 | 2012-12-26 | ||
| JP2012-282385 | 2012-12-26 | ||
| JP2013079644 | 2013-04-05 | ||
| JP2013-079644 | 2013-04-05 | ||
| JP2013083047 | 2013-04-11 | ||
| JP2013-083047 | 2013-04-11 |
Related Child Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/652,139 A-371-Of-International US9948951B2 (en) | 2012-12-26 | 2013-11-28 | Image decoding device which generates a predicted image of a target prediction unit |
| US15/914,163 Continuation US20180199064A1 (en) | 2012-12-26 | 2018-03-07 | Image decoding device and an image encoding device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2014103606A1 true WO2014103606A1 (ja) | 2014-07-03 |
Family
ID=51020700
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2013/082062 Ceased WO2014103606A1 (ja) | 2012-12-26 | 2013-11-28 | 画像復号装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US9948951B2 (ja) |
| JP (2) | JP6278900B2 (ja) |
| WO (1) | WO2014103606A1 (ja) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016506683A (ja) * | 2012-12-28 | 2016-03-03 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | ビデオ情報のスケーラブル及びマルチビュー/3dコード化のための機器及び方法 |
| JP2016529791A (ja) * | 2013-07-16 | 2016-09-23 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | ビデオコーディングのための照明補償を処理すること |
| WO2017061189A1 (ja) * | 2015-10-05 | 2017-04-13 | シャープ株式会社 | 画像復号装置または画像符号化装置のための画像予測装置 |
| JP2018522466A (ja) * | 2015-06-09 | 2018-08-09 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | ビデオコーディングのための照明補償ステータスを決定するシステムおよび方法 |
| WO2019021803A1 (ja) * | 2017-07-24 | 2019-01-31 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
| US11805271B2 (en) | 2017-10-05 | 2023-10-31 | Interdigital Vc Holdings, Inc. | Decoupled mode inference and prediction |
| JP2024512995A (ja) * | 2021-04-05 | 2024-03-21 | クアルコム,インコーポレイテッド | ジオメトリ点群圧縮のための残差予測コーディング |
Families Citing this family (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20140121315A (ko) * | 2013-04-04 | 2014-10-15 | 한국전자통신연구원 | 참조 픽처 리스트를 이용한 다 계층 기반의 영상 부호화/복호화 방법 및 그 장치 |
| WO2014163418A1 (ko) | 2013-04-04 | 2014-10-09 | 한국전자통신연구원 | 영상 부호화/복호화 방법 및 장치 |
| EP3383047A1 (en) * | 2013-04-05 | 2018-10-03 | Samsung Electronics Co., Ltd. | Method for predicting disparity vector for interlayer video decoding and encoding apparatus and method |
| US9565437B2 (en) | 2013-04-08 | 2017-02-07 | Qualcomm Incorporated | Parameter set designs for video coding extensions |
| WO2014166104A1 (en) * | 2013-04-12 | 2014-10-16 | Mediatek Singapore Pte. Ltd. | Removal of parsing dependency for illumination compensation |
| EP3021590A4 (en) * | 2013-07-12 | 2017-03-29 | Sony Corporation | Image coding device and method |
| WO2015009041A1 (ko) * | 2013-07-15 | 2015-01-22 | 삼성전자 주식회사 | 적응적 휘도 보상을 위한 인터 레이어 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치 |
| KR102264679B1 (ko) * | 2013-10-14 | 2021-06-14 | 삼성전자주식회사 | 휘도 보상 여부에 따른 뷰 합성 예측 적용 방법 및 장치 |
| KR101792089B1 (ko) * | 2013-10-17 | 2017-11-01 | 니폰 덴신 덴와 가부시끼가이샤 | 영상 부호화 장치 및 방법, 및 영상 복호 장치 및 방법 |
| KR102047501B1 (ko) * | 2014-10-07 | 2019-11-21 | 삼성전자주식회사 | 인터-레이어 예측을 이용한 멀티 레이어 영상 부호화 또는 복호화 방법 및 장치 |
| US10812822B2 (en) * | 2015-10-02 | 2020-10-20 | Qualcomm Incorporated | Intra block copy merge mode and padding of unavailable IBC reference region |
| US10986358B2 (en) | 2016-07-05 | 2021-04-20 | Kt Corporation | Method and apparatus for processing video signal |
| JP6859715B2 (ja) * | 2017-01-18 | 2021-04-14 | 富士ゼロックス株式会社 | 情報処理装置、三次元造形システム、及び情報処理プログラム |
| WO2019006363A1 (en) * | 2017-06-30 | 2019-01-03 | Vid Scale, Inc. | LOCAL LIGHTING COMPENSATION USING GENERALIZED BI-PREDICTION |
| US11172203B2 (en) * | 2017-08-08 | 2021-11-09 | Mediatek Inc. | Intra merge prediction |
| WO2019059107A1 (ja) * | 2017-09-20 | 2019-03-28 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
| EP3692716A1 (en) * | 2017-10-05 | 2020-08-12 | InterDigital VC Holdings, Inc. | Method and apparatus for adaptive illumination compensation in video encoding and decoding |
| US11310517B2 (en) | 2017-12-07 | 2022-04-19 | Electronics And Telecommunications Research Institute | Method and apparatus for encoding and decoding using selective information sharing between channels |
| US10652571B2 (en) * | 2018-01-25 | 2020-05-12 | Qualcomm Incorporated | Advanced motion vector prediction speedups for video coding |
| CN112042189B (zh) * | 2018-04-30 | 2023-07-21 | 寰发股份有限公司 | 照度补偿方法及相应的电子装置 |
| MX2020013272A (es) * | 2018-06-14 | 2021-02-18 | Panasonic Ip Corp America | Metodo de codificacion de datos tridimensionales, metodo de decodificacion de datos tridimensionales, dispositivo codificador de datos tridimensionales y dispositivo decodificador de datos tridimensionales. |
| CN112385226B (zh) * | 2018-06-18 | 2024-11-26 | 交互数字Vc控股公司 | 视频编码中的照度补偿 |
| EP3855748B8 (en) * | 2018-09-21 | 2024-12-11 | Sharp Kabushiki Kaisha | Image decoding apparatus |
| KR102661224B1 (ko) * | 2018-11-26 | 2024-04-26 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 화상의 블록을 인트라 예측하는 방법 |
| US11290743B2 (en) * | 2018-12-08 | 2022-03-29 | Qualcomm Incorporated | Interaction of illumination compensation with inter-prediction |
| TWI738248B (zh) | 2019-03-14 | 2021-09-01 | 聯發科技股份有限公司 | 運動細化以及子分區基礎填充的視訊處理的方法以及裝置 |
| AU2020295272B2 (en) * | 2019-06-19 | 2023-12-14 | Lg Electronics Inc. | Image decoding method for deriving prediction sample on basis of default merge mode, and device therefor |
| KR102857618B1 (ko) * | 2019-06-19 | 2025-09-09 | 엘지전자 주식회사 | 결정된 예측 모드를 적용하여 예측 샘플들을 생성하는 영상 디코딩 방법 및 그 장치 |
| AU2020294374B2 (en) | 2019-06-19 | 2024-01-11 | Lg Electronics Inc. | Image decoding method for performing inter-prediction when prediction mode for current block ultimately cannot be selected, and device for same |
| AU2020310350B2 (en) | 2019-07-10 | 2026-02-05 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Image component prediction method, encoder, decoder, and storage medium |
| AU2020203330B2 (en) * | 2020-05-21 | 2022-12-01 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding a block of video samples |
| US12412247B2 (en) * | 2021-09-23 | 2025-09-09 | Samsung Electronics Co., Ltd. | Efficient flicker suppression for single image super-resolution |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8115804B2 (en) * | 2006-01-12 | 2012-02-14 | Lg Electronics Inc. | Processing multiview video |
| KR100856411B1 (ko) * | 2006-12-01 | 2008-09-04 | 삼성전자주식회사 | 조도 보상 방법 및 그 장치와 그 방법을 기록한 컴퓨터로 읽을 수 있는 기록매체 |
| US9008170B2 (en) * | 2011-05-10 | 2015-04-14 | Qualcomm Incorporated | Offset type and coefficients signaling method for sample adaptive offset |
| CN103533374B (zh) * | 2012-07-06 | 2018-02-16 | 乐金电子(中国)研究开发中心有限公司 | 一种视频编码、解码的方法及装置 |
| US9877020B2 (en) * | 2013-01-10 | 2018-01-23 | Samsung Electronics Co., Ltd. | Method for encoding inter-layer video for compensating luminance difference and device therefor, and method for decoding video and device therefor |
-
2013
- 2013-11-28 JP JP2014554266A patent/JP6278900B2/ja not_active Expired - Fee Related
- 2013-11-28 US US14/652,139 patent/US9948951B2/en not_active Expired - Fee Related
- 2013-11-28 WO PCT/JP2013/082062 patent/WO2014103606A1/ja not_active Ceased
-
2018
- 2018-01-16 JP JP2018004967A patent/JP6435064B2/ja not_active Expired - Fee Related
- 2018-03-07 US US15/914,163 patent/US20180199064A1/en not_active Abandoned
Non-Patent Citations (4)
| Title |
|---|
| GERHARD TECH ET AL.: "3D-HEVC Test Model 2", JOINT COLLABORATIVE TEAM ON 3D VIDEO CODING EXTENSION DEVELOPMENT OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 2ND MEETING, 23 December 2012 (2012-12-23), SHANGHAI, CN * |
| HONGBIN LIU ET AL.: "3D-CE2.h : Results of Illumination Compensation for Inter-View Prediction", JOINT COLLABORATIVE TEAM ON 3D VIDEO CODING EXTENSION DEVELOPMENT OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 2ND MEETING, 13 October 2012 (2012-10-13), SHANGHAI, CN * |
| HONGBIN LIU ET AL.: "3D-CEl.h related: Illumination Compensation for Inter-View Prediction", JOINT COLLABORATIVE TEAM ON 3D VIDEO CODING EXTENSION DEVELOPMENT OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 1ST MEETING, 16 July 2012 (2012-07-16), STOCKHOLM, SE * |
| JICHENG AN ET AL.: "Removal of the parsing dependency of inter-view residual prediction", JOINT COLLABORATIVE TEAM ON 3D VIDEO CODING EXTENSION DEVELOPMENT OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 2ND MEETING, 13 October 2012 (2012-10-13), SHANGHAI, SE * |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2016506683A (ja) * | 2012-12-28 | 2016-03-03 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | ビデオ情報のスケーラブル及びマルチビュー/3dコード化のための機器及び方法 |
| JP2016529791A (ja) * | 2013-07-16 | 2016-09-23 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | ビデオコーディングのための照明補償を処理すること |
| JP2018522466A (ja) * | 2015-06-09 | 2018-08-09 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | ビデオコーディングのための照明補償ステータスを決定するシステムおよび方法 |
| US10887597B2 (en) | 2015-06-09 | 2021-01-05 | Qualcomm Incorporated | Systems and methods of determining illumination compensation parameters for video coding |
| WO2017061189A1 (ja) * | 2015-10-05 | 2017-04-13 | シャープ株式会社 | 画像復号装置または画像符号化装置のための画像予測装置 |
| WO2019021803A1 (ja) * | 2017-07-24 | 2019-01-31 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 符号化装置、復号装置、符号化方法及び復号方法 |
| US11805271B2 (en) | 2017-10-05 | 2023-10-31 | Interdigital Vc Holdings, Inc. | Decoupled mode inference and prediction |
| US12587672B2 (en) | 2017-10-05 | 2026-03-24 | Interdigital Vc Holdings, Inc. | Decoupled mode inference and prediction |
| JP2024512995A (ja) * | 2021-04-05 | 2024-03-21 | クアルコム,インコーポレイテッド | ジオメトリ点群圧縮のための残差予測コーディング |
Also Published As
| Publication number | Publication date |
|---|---|
| JP6435064B2 (ja) | 2018-12-05 |
| US20150326881A1 (en) | 2015-11-12 |
| US20180199064A1 (en) | 2018-07-12 |
| JP6278900B2 (ja) | 2018-02-14 |
| JP2018088693A (ja) | 2018-06-07 |
| US9948951B2 (en) | 2018-04-17 |
| JPWO2014103606A1 (ja) | 2017-01-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6278900B2 (ja) | 画像復号装置 | |
| US20230291924A1 (en) | Image decoding device, image encoding device, and method for decoding coded image | |
| US9967592B2 (en) | Block-based advanced residual prediction for 3D video coding | |
| JP6360053B2 (ja) | 照度補償装置、画像復号装置、画像符号化装置 | |
| US9628795B2 (en) | Block identification using disparity vector in video coding | |
| US9288507B2 (en) | More accurate advanced residual prediction (ARP) for texture coding | |
| WO2014050948A1 (ja) | 画像復号装置及び画像符号化装置 | |
| US10587894B2 (en) | Method and device for encoding/decoding 3D video | |
| WO2017135151A1 (ja) | 予測画像生成装置、動画像復号装置、および動画像符号化装置 | |
| WO2017061189A1 (ja) | 画像復号装置または画像符号化装置のための画像予測装置 | |
| WO2014103600A1 (ja) | 符号化データ構造、および画像復号装置 | |
| JP6118199B2 (ja) | 画像復号装置、画像符号化装置、画像復号方法、画像符号化方法及びコンピュータ読み取り可能な記録媒体。 | |
| WO2015056620A1 (ja) | 画像復号装置、画像符号化装置 | |
| WO2016056587A1 (ja) | 変位配列導出装置、変位ベクトル導出装置、デフォルト参照ビューインデックス導出装置及びデプスルックアップテーブル導出装置 | |
| JP2015080053A (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: 13867924 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 14652139 Country of ref document: US |
|
| ENP | Entry into the national phase |
Ref document number: 2014554266 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 13867924 Country of ref document: EP Kind code of ref document: A1 |